c# - 使用 Directory 类,检查特定文件类型的目录

标签 c# directory

我一直在使用以下几行来搜索特定文件类型的文件夹结构,然后只复制这些文件类型并保持其原始文件夹结构。它工作得很好。 我可以对我的方法进行任何修改以仅复制包含过滤文件类型的目录吗?

*编辑:我可以让用户使用名为 txtFilter 的文本框仅选择一组特定的文件(例如 *.dwg 或 *.pdf)。

private void button1_Click(object sender, EventArgs e)
{
    string sourceFolder = txtSource.Text;
    string destinationFolder = txtDestination.Text;
    CopyFolderContents(sourceFolder, destinationFolder);
}

// Copies the contents of a folder, including subfolders to an other folder, overwriting existing files
public void CopyFolderContents(string sourceFolder, string destinationFolder)
        {
            string filter = txtFilter.Text;

            if (Directory.Exists(sourceFolder))
            {
                // Copy folder structure
                foreach (string sourceSubFolder in Directory.GetDirectories(sourceFolder, "*", SearchOption.AllDirectories))
                {
                    Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder, destinationFolder));
                }

                // Copy files
                foreach (string sourceFile in Directory.GetFiles(sourceFolder, filter, SearchOption.AllDirectories))
                {
                    string destinationFile = sourceFile.Replace(sourceFolder, destinationFolder);
                    File.Copy(sourceFile, destinationFile, true);
                }
            }
        }

最佳答案

在你的主循环中有这样的东西吗?

if (Directory.EnumerateFiles(sourceSubFolder, "*.pdf").Any())
       Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder, destinationFolder));

或者对于多种文件类型:

if (Directory.EnumerateFiles(sourceSubFolder).Where(x => x.ToLower.EndsWith(".pdf") || x.ToLower.EndsWith(".dwg")).Any())
       Directory.CreateDirectory(sourceSubFolder.Replace(sourceFolder, destinationFolder));

关于c# - 使用 Directory 类,检查特定文件类型的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446615/

相关文章:

c# - 统一 : Live Video Streaming

c# - 在外部文件中写入 appSettings

ruby - 在 Ruby 中,如何将另一个目录中的文件指定为输入?

python - 从移动目录加载 tensorflow 模型

ios - 在 UITableView 中显示文档目录中的文件 - 最低 iOS5

python - 无法使用 python pykitti 包在目录中找到文件

c# - Interop C#/C : AccessViolationException 问题

c# - Win 10 UAP - 在 Canvas 上画一条线

c# - 自动化测试期间的 WPF 组件资源

c++ - 包含目录中的所有文件?