我正在尝试清理我的lightroom文件夹,并发现有时会从他们周围移动文件而留下隐藏文件。
我做了一些搜索,并且能够构建这个Frankenstein函数,但每次尝试删除一个空文件夹时,我都会收到一条错误消息,说该文件夹正在被另一个进程使用....
基本上我试图通过所有文件夹重复并删除那些空子项,或者只包含隐藏文件的文件夹。如果没有包含文件(或仅隐藏文件),则此过程应重复通过所有文件夹删除其子项,并最终删除父项。
任何帮助或建议将不胜感激!
干杯!
private static void processDirectory(string startLocation)
{
//For every folder in this folder, recurse into that folder and take a peek...
foreach (var directory in Directory.GetDirectories(startLocation))
{
processDirectory(directory);
//Get a handle to the directory to get files and whatnot from....
DirectoryInfo di = new DirectoryInfo(directory);
FileInfo[] files = di.GetFiles();
//We want to ignore any hidden files in the directory
var filtered = files.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden));
//Make sure there are no other files or directories behind this one
if (filtered.Count() == 0 && Directory.GetDirectories(directory).Length == 0)
{
//Okay it's safe, delete it now.
di.Delete();
}
}
}
答案 0 :(得分:0)
好吧,如果这不是很奇怪,今天早上当我运行代码它工作得很好!?我的文件夹只被修剪成实际上有照片的文件夹,生活很美好
我要做的一件事就是将true
添加到di.Delete()
函数中。这是因为该功能在其中隐藏文件的文件夹上停止
我假设它与Chris上面发布的内容类似,而且一些潜在的功能仍然是从Adobe开放的。
感谢所有发布回复的人!
干杯!