我想从我的程序中删除包含或不包含文件/文件夹的文件夹。
代码:
static void Main(string[] args)
{
List<string> foldersToDelete = new List<string>();
foreach(var f in System.IO.Directory.GetDirectories(@"C:\Users\Public\MySpecialTempFolder"))
{
var dir = new DirectoryInfo(f);
dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
long size = GetDirectorySize(f);
// delete folders less then 1 mb
if (size < 1000000)
foldersToDelete.Add(f);
}
foreach (var s in foldersToDelete)
System.IO.Directory.Delete(s, true);
}
private static long GetDirectorySize(string folderPath)
{
DirectoryInfo di = new DirectoryInfo(folderPath);
return di.EnumerateFiles("*.*", SearchOption.AllDirectories).Sum(fi => fi.Length);
}
但是...当我运行它时,我得到拒绝访问
。怎么了,我可以通过右键单击文件夹并在那里删除它然后手动执行此操作
最佳答案
尝试使用 Visual Basic 删除:
var directory = new DirectoryInfo(targetDir);
if (directory.Exists)
{
Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(targetDir, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
}
关于c# - 如何删除包含文件的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32998453/