2013-10-02 20 views
1

[单声道3.2.1]单声道无法访问目录或文件名包含unicode字符(非ASCII)?

使用Directory.GetFileSystemEntries或Directory.GetDirectories方法无法获取中文目录。为什么?

有什么办法可以解决这个问题吗?

[例如]

目录结构:

Contents 
     |--zipfile 
      |--sub 
      |--1.txt 
      |--中文.txt 
      |--中文 
       |--2.txt 

代码:

string[] fileNames = Directory.GetFileSystemEntries(Server.MapPath("~/Content/zipfile")); 

无法获取 “中文” 目录和 “中文的.txt” 文件。

+0

后一些代码!一个说明问题的简单,完整的例子。 –

回答

1

作品对我来说:

[email protected]:/tmp$ mcs -o test.csx test.cs 
warning CS8029: Compatibility: Use -out:FILE instead of --output FILE or -o FILE 
[email protected]:/tmp$ mkdir 漢語 
[email protected]:/tmp$ ls 
bitcoin.tmp  litecoin.tmp pulse-2L9K88eMlGn7 test.cs 漢語 
CRX_75DAF8CB7768 pcaresult.html pulse-PKdhtXMmr18n test.csx 
[email protected]:/tmp$ mono ./test.csx 
./.ICE-unix 
./.X0-lock 
./.X11-unix 
./.google-talk-plugin-jcomeau.lock 
./.org.chromium.Chromium.kFgd2O 
./CRX_75DAF8CB7768 
./bitcoin.tmp 
./litecoin.tmp 
./pcaresult.html 
./pulse-2L9K88eMlGn7 
./pulse-PKdhtXMmr18n 
./test.cs 
./test.csx 
./漢語 
[email protected]:/tmp$ cat test.cs 
using System; 
using System.IO; 
public class Test { 
static public void Main() { 
    foreach (String filename in Directory.GetFileSystemEntries(".")) { 
    Console.WriteLine("{0}", filename); 
    } 
} 
} 
+0

但我不能。我的操作系统是Debian 6.任何设置?语言环境或语言? – bossma

+0

当你在一个使用unicode中文目录名的目录中运行这个程序时,你会看到什么?请发布输出。 (我运行Debian 7.1) LANG =的en_US.UTF-8 XTERM_LOCALE =的en_US.UTF-8 –

+0

FindNextFile:坏编码 './中文' – bossma

相关问题