C # двуязычный символ разделителя каталогов для неанглийских Windows - PullRequest
1 голос
/ 02 апреля 2011

Я пытаюсь создать-прочитать / записать файл в подпапку папки пользователя AppData \ Roaming:

string fileloc = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "FolderName" + Path.AltDirectorySeparatorChar + "SomeFile.txt");

Это прекрасно работает на моем компьютере, но когда я запустил программу на японском ноутбуке друга (который использует ¥ в качестве разделителя каталогов), они могли только читать / записывать в файл, и программа зависала, необходимо создать файл. (Я также пробовал не-Alt разделитель каталогов.)

Строка fileloc напечатана:

C: ¥ Пользователи ¥ UserName ¥ Appdata ¥ Роуминг ¥ FolderName / Somefile.txt

Ответы [ 2 ]

1 голос
/ 02 апреля 2011

string fileloc = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData), Path.Combine ("FolderName", + "SomeFile.txt"));

должен делать то, что вы ожидаете. Это работает для вас?

1 голос
/ 02 апреля 2011

Как насчет

string fileloc = Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "FolderName"), "SomeFile.txt");

Или, возможно, легче понять:

string directoryPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "FolderName"); 
string fileloc = Path.Combine(directoryPath, "SomeFile.txt");
...