我正在尝试删除文件夹,并且由于包含长路径的文件夹,删除失败.我认为我需要使用其他东西而不是dir.Delete(真),任何人之前都穿过这座桥?
非常感谢
try
{
var dir = new DirectoryInfo(@FolderPath);
dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
dir.Delete(true);
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)
这是有问题的路径:\ server\share\dave\Private\Careers\Careers Ed\Fun Careers Education\Chris's not used used 2006 to07\old 4.Careers Area Activity Week 1 30.10.06 or 6.11.06 or 13.11.06职业水平和职业资源简介\职业领域和职位级别教师帮助表[1] .doc
Jam*_*ell 11
在Windows API中,路径的最大长度为MAX_PATH,定义为260个字符.本地路径按以下顺序构成:驱动器号,冒号,反斜杠,由反斜杠分隔的名称组件以及终止空字符.例如,驱动器D上的最大路径是"D:\某个256个字符的路径字符串
<NUL>",其中"<NUL>"表示当前系统代码页的不可见的终止空字符.(此处使用字符<>是为了清晰可见,并且不能成为有效路径字符串的一部分.)[MSDN]
多个函数的Unicode版本允许最大路径长度约为32,000个字符,由长度最多255个字符的组件组成.要指定该类型的路径,请使用"\\?\"前缀.最大路径为32,000个字符是近似值,因为"\\?\"前缀可以扩展为更长的字符串,并且扩展适用于总长度.
例如,"\\?\D:\<path>".要指定此类UNC路径,请使用"\\?\UNC\"前缀.例如,"\\?\UNC\<server>\<share>".这些前缀不会用作路径本身的一部分.它们表明路径应该以最小的修改传递给系统,这意味着您不能使用正斜杠来表示路径分隔符,也不能使用句点来表示当前目录.此外,您不能将"\\?\"前缀与相对路径一起使用.相对路径限制为MAX_PATH字符.
shell和文件系统可能有不同的要求.可以使用shell UI无法处理的API创建路径.
C#语法:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool DeleteFile(string path);
Run Code Online (Sandbox Code Playgroud)
有关该类的详细信息,请参阅系统命名空间 - MSDN
摘录自:
| 归档时间: |
|
| 查看次数: |
11153 次 |
| 最近记录: |