gpt4 book ai didi

c# - 子文件夹遍历

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:27 25 4
gpt4 key购买 nike

我在 c:\MyData 中有一组 3 层深的子文件夹,其中包含超过 20k 个文件。

我的 E 盘上有一组几乎相同的子文件夹,位于 e:\projects\massdata

我想检查 C 和 E 中已经存在的任何内容(相同的文件夹名称、相同的文件名、相同的大小),我想从 C 中删除。

遍历此文件夹结构的最佳方式是什么?

最佳答案

如何使用连接运算符。像这样加入文件名

public void cleanUp()
{
var cFiles = Directory.GetFiles(@"c:\MyData","*.*",SearchOption.AllDirectories);
var fFiles = Directory.GetFiles(@"e:\projects\massdata","*.*",SearchOption.AllDirectories);
Func<string, string, Tuple<string, long>> keySelector = (path, root) =>
new Tuple<string, long>(path.Replace(root, ""), new FileInfo(path).Length);

foreach (var file in cFiles.Join(fFiles, f => keySelector(f,@"e:\projects\massdata"), c => keySelector(c,@"c:\MyData"), (c, f) => c))
{
File.Delete(file);
}
}

更新后的第二次编辑:键选择器现在应该满足您的要求。如果我误解了他们。这肯定很容易,所以看看你需要改变什么。如果没有发表评论 :)

关于c# - 子文件夹遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3687491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com