使用C#

时间:2016-10-12 07:37:02

标签: c#

我想将文件从一个文件夹移动到另一个文件夹。 我想要实现的是我只从导出文件夹中选择这些特定文件并将其替换到我的目标文件夹中。并且目标文件夹中的项目是密钥,因此我只想要这些项目,否则如果文件已经存在于目标中,则替换它们。

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中

1 个答案:

答案 0 :(得分:2)

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

 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);
    }
}
}

删除目标文件夹中的文件(如果存在)并移动文件。因此,如果文件在目标文件夹中不存在,则不执行任何操作;)