кириллица в именах файлов
Sep. 1st, 2012 11:16 pmПредставим себе абстрактного продвинутого пользователя. Есть у него каталог развесистой структуры, в нём лежат файлы. Хочет этот пользователь получить список этих файлов одним куском. Да нет проблем, на то он и продвинутый. Открывает чёрное окошко, пишет "dir /b /s >z" и готово.
Это в случае, если русских букв в именах файлов нету. А если есть, то они будут заменены знаком вопросика, для вашего же удобства. Что делать в этом случае продвинутому?
Я знаю что я сделал бы в таком случае. Написал бы что-то вроде этого:
Но нормальные-то люди как обходятся? Или я не знаю какой-то секретной кнопки?
А то как-то слишком много писанины для такой тривиальной операции.
Update:
1) вспомнил что бывает Powershell, который умеет много гитик, в том числе не портить юникод в именах файлов
2) cmd.exe /U /c dir /b /s >z файл при этом будет ucs-2le, а не utf8
Это в случае, если русских букв в именах файлов нету. А если есть, то они будут заменены знаком вопросика, для вашего же удобства. Что делать в этом случае продвинутому?
Я знаю что я сделал бы в таком случае. Написал бы что-то вроде этого:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folder = fso.GetFolder(".");
//var subFlds = new Enumerator(folder.SubFolders);
var files = new Enumerator(folder.Files);
var out=fso.CreateTextFile("z",true,true);
for (; !files.atEnd(); files.moveNext()) {
out.WriteLine(files.item());
}
Но нормальные-то люди как обходятся? Или я не знаю какой-то секретной кнопки?
А то как-то слишком много писанины для такой тривиальной операции.
Update:
1) вспомнил что бывает Powershell, который умеет много гитик, в том числе не портить юникод в именах файлов
2) cmd.exe /U /c dir /b /s >z файл при этом будет ucs-2le, а не utf8
no subject
Date: 2012-09-02 08:52 pm (UTC)no subject
Date: 2012-09-02 09:43 pm (UTC)no subject
Date: 2012-09-02 10:28 pm (UTC)Кстати, ты можешь объяснить, почему тот же dir без перенаправления вывода в файл пишет на экране русские буквы совершенно нормально?
no subject
Date: 2012-09-02 11:58 pm (UTC)Даже powershell, который нормально записывает имена файлов с юникод символами при перенаправлении в файл, на экране показывает их вопросиками.
no subject
Date: 2012-09-06 06:05 pm (UTC)no subject
Date: 2012-09-07 12:55 am (UTC)"А чего ты не поставишь в виндах основную кодовую страницу для неюникодных программ = 1251?"
no subject
Date: 2012-09-07 03:23 am (UTC)И вообще, блин, середина первой четверти двадцать первого века на дворе, а вы мне про кодовые страницы. Вы бы ещё магнитную ленту мне предложили одеколоном протереть.