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

本文关键字:256个 路径 字符 删除 方法 DirectoryInfo 中的 Delete true 使用 | 更新日期: 2023-09-27 18:04:53

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

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个字符时抛出异常,并且不删除文件夹。我怎样才能克服呢?谢谢你

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

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

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