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

时间:2016-08-31 15:55:54

标签: c# .net io

我的目标是使用删除整个文件夹以及该文件夹中早于月份的所有内容。以下是我写的代码:

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);
            }
        }
    }
}

Isssue:dirInfo.Delete(true)语句在path超过256个字符时抛出异常,并且不删除该文件夹。我怎么能过来呢? 谢谢

1 个答案:

答案 0 :(得分:2)

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

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