【问题标题】:Copy all files from a directory without creating subdirectories从目录复制所有文件而不创建子目录
【发布时间】:2015-12-07 14:37:20
【问题描述】:

我正在尝试获取一个目录并在 TEMP 中创建一个新目录,其中包含原始目录中的所有文件,但不创建其他子目录。

这是我目前所拥有的:

Directory.CreateDirectory(Path.Combine(Path.GetTempPath() + "C# Temporary Files"));
            string lastFolder = new DirectoryInfo(folders.SelectedPath).Name;

foreach (string newPath in Directory.GetFiles(folders.SelectedPath, "*.*",SearchOption.AllDirectories)
                    .Where(s=>s.EndsWith(".c")|| s.EndsWith(".h")))
                {
                    File.Copy(newPath, newPath.Replace(folders.SelectedPath, Path.GetTempPath() + "C# Temporary Files\\" + GlobalVar.GlobalInt));
                }

这适用于复制目录本身中的文件,而不是子目录中的文件。相反,它会抛出错误:

System.IO.DirectoryNotFoundException。

错误示例:

找不到路径的一部分 'C:\Users\用户名\AppData\Local\Temp\C# Temporary Files\outer 目录\子目录\文件名'。

【问题讨论】:

    标签: c# folderbrowserdialog


    【解决方案1】:

    我会递归 - 可能类似于下面的伪代码...未测试..

    public void CopyRecursive(string path, string newLocation)
    {
        foreach(var file in DirectoryInfo.GetFiles(path))
        {
            File.Copy(file.FullName, newLocation + file.Name);
        }
    
        foreach(var dir in DirectoryInfo.GetDirectories(path))
        {
            CopyRecursive(path + dir.Name, newLocation);
        }
    }
    

    【讨论】:

    • 谢谢,能够使用它来获得一些工作。
    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 2013-06-25
    • 1970-01-01
    • 2021-06-16
    • 2018-01-10
    • 2014-06-21
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多