【问题标题】:Move and replace files depending on the name with C#使用 C# 根据名称移动和替换文件
【发布时间】:2016-10-12 16:36:21
【问题描述】:

我想根据名称将文件从一个文件夹移动到另一个文件夹。 我想要实现的是,我只从我的导出文件夹中选择这些特定文件并将它们替换到我的目标文件夹中。目标文件夹中的项目是关键,所以我只想要这些,否则如果目标文件已经存在,请替换它们。

private static void CopyPaste()
{
    var pstFileFolder = "C:/Users/chnikos/Desktop/CopyFolderTest/";
    var searchPattern = "*.docx";
    var soruceFolder= "C:/Users/chnikos/Desktop/CopyFolderTest/Test/";

    // Searches the directory for *.pst
    foreach (var file in Directory.GetFiles(pstFileFolder, searchPattern))
    {
        // Exposes file information like Name
        var theFileInfo = new FileInfo(file);
        // Gets the user name based on file name
        // Sets up the destination location
        var destination = soruceFolder+ theFileInfo.Name;
        File.Move(file, destination);
    }
}

源目标是:soruceFolder 源是:pstFileFolder

我面临的问题是我无法控制复制的内容似乎我的代码正在获取所有文件而不检查这些文件是否存在于 sourfolder 中

【问题讨论】:

  • 你能描述一下这段代码的问题吗?尤其是。不清楚目标目的地和源目的地是什么
  • 你的问题没有问题!你能解释一下你遇到了什么问题吗?
  • 您可能想阅读How to debug small programs
  • @KrisVandermotten 不,谢谢,很好......我会跳过那个

标签: c#


【解决方案1】:

您需要检查目标文件夹以查看它是否包含您的文件,如下所示:

 private static void CopyPaste()
 {
var pstFileFolder = "C:/Users/chnikos/Desktop/CopyFolderTest/";
var searchPattern = "*.docx";
var soruceFolder= "C:/Users/chnikos/Desktop/CopyFolderTest/Test/";

// Searches the directory for *.pst
foreach (var file in Directory.GetFiles(pstFileFolder, searchPattern))
{
    // Exposes file information like Name
    var theFileInfo = new FileInfo(file);
    // Gets the user name based on file name
    // Sets up the destination location
    var destination = soruceFolder+ theFileInfo.Name;
    if(File.Exist(destination))
    {
       File.Delete(destination);
    File.Move(file, destination);
    }
}
}

它会删除目标文件夹中的文件(如果存在)并移动您的文件。因此,如果目标文件夹中不存在该文件,则它什么也不做;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2017-06-07
    • 2018-06-25
    • 2021-08-23
    • 2015-10-09
    相关资源
    最近更新 更多