2

如何在 C# 中访问具有“无名称”(空格)的目录/文件夹。我努力了

string currentDir = "G:\\";
string targetDir = currentDir + "\\" + " " + "\\";
now targetDir === "G:\\ \\";

但是不,当我使用 targetDir 获取“G:\”中的文件列表时,它只显示“G:\”中的文件而不是“G:\”

谢谢

图片链接

4

4 回答 4

2

这很棘手,我能够模拟的唯一方法是使用 ALT + 0160 创建一个空白文件夹(这实际上被称为不间断空格,在 html 代码中,它是 or  )。

对于此字符,您可以使用System.Net.WebUtility.HtmlDecode获取空白文件夹中的文件,如下所示:

testDir1 = currentDir + "\\" + System.Net.WebUtility.HtmlDecode(@" ") + "\\";

或者

testDir1 = currentDir + "\\" + System.Net.WebUtility.HtmlDecode(@" ") + "\\";    

这让我得到了空白文件夹中的文件。 从空白文件夹中抓取文件

看看它是否适合你,如果不适合,那么你的角色是其他一些奇怪的角色,你必须在继续之前找出它到底是什么。

于 2013-08-19T14:12:18.917 回答
1

该字符可能实际上不是空格。例如。如果我通过按住 alt 并输入 ascii 代码 00160 来重命名文件夹,则会在我的机器上产生一个空白文件夹名称。

于 2013-08-19T13:33:55.337 回答
0

命名文件、路径和命名空间”之后的空格字符不支持以文件或目录名称结尾,其他单词也不支持作为名称。

不要以空格或句点结尾的文件或目录名称。尽管底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。但是,可以将句点指定为名称的第一个字符。例如,“.temp”。

于 2013-08-19T13:27:47.933 回答
0

您可以通过获取当前路径中所有文件夹的列表,FileInfo并在检索到的数组上运行循环,搜索其名称中包含 1 个字符且不是普通字符的文件夹。是的,它不会动态工作,因为在某些 PC 上,特定字符被认为是普通字符,而在另一台 PC 上则不是,但这就是我想到的,如果脚本是供您个人使用的,我认为没有理由不使用此解决方法:)

于 2013-08-19T14:41:37.237 回答