【发布时间】:2012-05-03 19:52:57
【问题描述】:
请阅读整篇文章,因为整篇文章都是相关的。
我写了这段 C# 代码:
static void DumpDir(string dir)
{
string[] subdirs = Directory.GetDirectories(dir);
foreach (string subdir in subdirs)
{
DumpDir(subdir);
}
string[] files = Directory.GetFiles(dir);
}
static void Main(string[] args)
{
string startdir = @"G:\multimedia_dump";
dirindexstart = startdir.Split('\\').Length;
string[] dirs = Directory.GetDirectories(startdir);
foreach (string dir in dirs)
{
DumpDir(dir);
}
}
它打开一个硬编码的目录,并递归地遍历它的所有子目录。这就是它所做的一切。就是这样。
但是,它在特定文件夹上出错:
注意这不是初始目录。请注意,如果您遵循代码,它必须从逻辑上派生自 Directory.GetDirectories() 调用之一。此文件夹名称的生成效果并不差。是真的。
它不仅是真实的,而且我可以在 Explorer 的 GUI 中导航到它:
奇怪的是,如果您在 CMD 中导航到该文件夹,它会显示在 DIR 中,但如果您在获得文件夹名称建议之前按 TAB 键,它不会让您 CD 进入其中。我会发布第三个链接,但这个东西不会让我,因为我是新人。
什么给了?我认为生成此文件夹的软件是使用某种低级 NTFS 调用来实现的。有没有办法以编程方式清理这些文件夹名称,或者解决此错误,以便您可以访问存在但不应该访问的文件夹?
【问题讨论】:
-
该文件夹名称中是否有
|? -
我以为是光标,目录名以空格结尾。