string directorypath = @"C:\Folder01\Subfolder01\Next_level_Down ";
DirectoryInfo mydirectoryinfo = new DirectoryInfo(directorypath);
当上面的代码运行时,mydirectoryinfo.FullName 和 FullPath 将切断 directorypath 中最后一个文件夹末尾的尾随空格。这似乎是一个错误?
这会导致我运行时崩溃:
DirectoryInfo[] mysubdirectories = mydirectoryinfo.GetDirectories();
因为它会抛出异常“找不到路径的一部分......”
我有一堆旧文件夹,我正在对它们进行排序和收集数据,所以我需要获取它们的 DirectoryInfo,但其中一些文件夹名称末尾有空格。我希望能够让 DirectoryInfo 处理文件夹名称末尾的空白,而不是单独传递以更正文件夹名称(这可能会破坏与这些文件夹的其他连接)。如果可以的话?
我有一个我输入到 .CSV 文件中的目录列表。在循环到实例 DirectoryInfo 并运行我的检查之前,路径被读入列表,因此无法添加更多可能有用的格式。我正在使用 .Net Framework 4.7.2
对于 shell 不支持的这种非正统路径名还有什么帮助(参见 https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/file-folder-name-whitespace-characters ) 在前面
\\?\
:
string directorypath = @"\\?\C:\Folder01\Subfolder01\Next_level_Down ";
DirectoryInfo mydirectoryinfo = new DirectoryInfo(directorypath);
来自文档:
对于文件 I/O,路径字符串的“\?\”前缀告诉 Windows 禁用所有字符串解析并发送后面的字符串的 API 它直接到文件系统。
我不知道你是如何创建一个在和处有空格的文件夹,但如果可能的话,添加一个反斜杠
string directorypath = @"C:\Folder01\Subfolder01\Next_level_Down \";
DirectoryInfo mydirectoryinfo = new DirectoryInfo(directorypath);
如果您的真实路径类似于上面的代码,请删除空格或反斜杠。我认为不可能创建一个末尾有空格的目录,为什么要在那里放一个空格? 我想到的解决您问题的最后一个可能的方法是路径错误。中间某处是一个不正确的字符,因此将抛出此异常。 希望能帮到你