簡體   English   中英

將文件夾 A 中的文件復制到文件夾 B

[英]Copy files from folder A to folder B

我想復制文件夾的一些內容(遞歸)。 僅包含特定模式的文件。

這里有一種復制整個內容的方法。 不管里面有什么文件。

https://stackoverflow.com/a/3822913/7028967

您對如何在具有給定模式的某個子文件夾中復制特定文件有任何想法嗎?

例如:

- 根文件夾
---- 文件名.txt

CopyContent(src, dest, *.txt)

下面的示例代碼以完全相同的文件夾結構將所有文件從源目錄復制到目標文件夾:

       public static void Copy()
        {
            string sourceDir = @"C:\test\source\";
            string destination = @"C:\test\destination\";

            string[] textFiles = Directory.GetFiles(sourceDir, "*.txt", SearchOption.AllDirectories);

            foreach (string textFile in textFiles)
            {
                string fileName = textFile.Substring(sourceDir.Length);
                string directoryPath = Path.Combine(destination, Path.GetDirectoryName(fileName));
                if (!Directory.Exists(directoryPath))
                    Directory.CreateDirectory(directoryPath);

                File.Copy(textFile, Path.Combine(directoryPath, Path.GetFileName(textFile)), true);
            }
        }

更新:

在此處輸入圖像描述

我使用了這個解決方案。 它對我有用!

private static void CopyContentFolder(string sourcePath, string targetPath, bool isFileOverridable, string pattern = "*.*")

{
    string[] sourceFiles = Directory.GetFiles(sourcePath, pattern, SearchOption.AllDirectories);

    foreach (string sourceFilePath in sourceFiles)
    {   
        string destinationFilePath = string.Empty;
        destinationFilePath = sourceFilePath.Replace(sourcePath, targetPath);
        EvaluatePath(destinationFilePath);
        File.Copy(sourceFilePath, destinationFilePath, isFileOverridable);
    }
}

private static void EvaluatePath(string path)
{
    try
    {
        string folder = Path.GetDirectoryName(path);
        if (!Directory.Exists(folder))
        {
            DirectoryInfo di = Directory.CreateDirectory(folder);
        }
    }
    catch (IOException ioex)
    {
        Console.WriteLine(ioex.Message);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM