Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Script Content Plugin 
Author Message
Serge Yolkin



PostPosted: Thu Nov 07, 2013 12:39    Post subject: Reply with quote

Вот, решил проблему с критерием "юникодности" имени файла:
Code:
var   // проверяем на юникодность имена файлов, переданных короткими (8.3) именами
 a=new ActiveXObject('Shell.Application'),
 c=new ActiveXObject('MSScriptControl.ScriptControl'),
 f=new ActiveXObject('Scripting.FileSystemObject'),
 n=a.NameSpace(f.getParentFolderName(filename));

c.language='VBScript';
c.allowUI=false;
c.addCode(
'Function FC(E)\n'+
'  FC = ""\n'+
'  For i = 1 to Len(E)\n'+
'    FC = FC & Chr(Asc(mid(E,i,1)))\n'+
'  Next\n'+
'End Function\n'
);

Content=fb(fa(filename));

function fa(e){return(n.ParseName(f.getFileName(e)).path);}
function fb(e){var u=c.run('fc',e);return(f.fileExists(u)||f.folderExists(u));}
Asc, похоже, использует "общевиндовский" механизм замены символов Unicode, а видно файл после преобразования имени, или нет - пусть сама винда и разбирается. Попутно обнаружилось ещё одно воплощение проблемы с именами в плагине: папка с именем "Õ" не обрабатывается вообще, даже скриптом
Code:
Content=1;


Добавлено спустя 10 минут:

На VBS, пожалуй, покороче будет, но сейчас не до этого. Кстати, нет ли в VBS команды, преобразующей строку Unicode в строку ANSI целиком, не по одному символу в цикле?
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group