使用c#中的DirectoryInfo.Delete(true)方法删除长度超过256个字符的路径



我的目标是使用删除整个文件夹和文件夹内所有超过一个月的内容。下面是我写的代码:

foreach (String dir in Directory.EnumerateDirectories(args[0]))
{
    foreach (String subDir in Directory.EnumerateDirectories(dir))
    {
        DirectoryInfo dirInfo = new DirectoryInfo(subDir);
        if (dirInfo.CreationTime < DateTime.Today.AddMonths(-1))
        {
            try
            {
                dirInfo.Delete(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
    }
}

issue: dirInfo.Delete(true)语句在路径长度超过256个字符时抛出异常,并且不删除文件夹。我怎样才能克服呢?谢谢你

您可以尝试先将文件夹移动到较短的目录路径,这样它的路径就不再那么长,然后再删除它。

dirInfo.MoveTo("C:temp");
dirInfo.Delete(true);

最新更新