nsg21: (Default)
[personal profile] nsg21
Представим себе абстрактного продвинутого пользователя. Есть у него каталог развесистой структуры, в нём лежат файлы. Хочет этот пользователь получить список этих файлов одним куском. Да нет проблем, на то он и продвинутый. Открывает чёрное окошко, пишет "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

Date: 2012-09-02 08:52 pm (UTC)
From: [identity profile] blk-104.livejournal.com
А чего ты не поставишь в виндах основную кодовую страницу для неюникодных программ = 1251? Тогда не будет знаков вопроса. (У меня в этом случае вопросиками станут показываться немецкие умлауты, но тебя ведь эта проблема не касается?)

Date: 2012-09-02 09:43 pm (UTC)
From: [identity profile] nsg21.livejournal.com
Я и слова такие давно забыл. Кроме того, имена файлов с умляутами мне тоже попадаются. Я надеюсь, ты не предлагаешь сначала сделать один список, потом переставить страницу, сделать опять, а потом их как-нибудь слить вместе?

Date: 2012-09-02 10:28 pm (UTC)
From: [identity profile] blk-104.livejournal.com
Нет, такого не предлагаю.
Кстати, ты можешь объяснить, почему тот же dir без перенаправления вывода в файл пишет на экране русские буквы совершенно нормально?

Date: 2012-09-02 11:58 pm (UTC)
From: [identity profile] nsg21.livejournal.com
У меня не пишет.
Даже powershell, который нормально записывает имена файлов с юникод символами при перенаправлении в файл, на экране показывает их вопросиками.

Date: 2012-09-06 06:05 pm (UTC)
From: [identity profile] blk-104.livejournal.com
Ну и ну. А какой виндовс?

Date: 2012-09-07 12:55 am (UTC)
From: [identity profile] garalex.livejournal.com
Ну так тебе же blk_104 написал -
"А чего ты не поставишь в виндах основную кодовую страницу для неюникодных программ = 1251?"

Date: 2012-09-07 03:23 am (UTC)
From: [identity profile] nsg21.livejournal.com
А я ему ответил, что во первых слова такие давно забыл, во вторых, 1251 мир не заканчивается, другие символы тоже бывают, и, наконец, на каждом компьютере с которым я работаю такую процедуру проводить не буду. Тем более, что на некоторых из этих компьютеров у меня просто недостаточно прав.
И вообще, блин, середина первой четверти двадцать первого века на дворе, а вы мне про кодовые страницы. Вы бы ещё магнитную ленту мне предложили одеколоном протереть.

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 Mar. 9th, 2026 12:26 pm
Powered by Dreamwidth Studios