Sep. 1st, 2012

nsg21: (Default)
Представим себе абстрактного продвинутого пользователя. Есть у него каталог развесистой структуры, в нём лежат файлы. Хочет этот пользователь получить список этих файлов одним куском. Да нет проблем, на то он и продвинутый. Открывает чёрное окошко, пишет "dir /b /s >z" и готово.
Это в случае, если русских букв в именах файлов нету. А если есть, то они будут заменены знаком вопросика, для вашего же удобства. Что делать в этом случае продвинутому?

Я знаю что я сделал бы в таком случае. Написал бы что-то вроде этого:
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

Profile

nsg21: (Default)
nsg21

April 2024

S M T W T F S
 123456
7 8910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 20th, 2025 10:45 pm
Powered by Dreamwidth Studios