Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: CL | DM;

Вниз

Короткий путь   Найти похожие ветки 

 
apic ©   (2006-08-17 17:30) [0]

Ситуация...
У меня есть список полных имен файлов (путь, имя, расширение), причем файлов может и не быть, просто список путей, ВОПРОС: как мне преобразовать их в короткие имена как в досе. Замечу, что русские пути и файлы винда преобразовывает в какието имены с цифирками, в которых и буков то нет, я это узнал когда изучал скрипты, там это делается легко, всебы нечего, до объектной модели скриптов можно добраться и через делфи с помощью OLE, но дело втом, что WSH возвращает короткое имя только в том случае, если файл существует, а мне нужно получить короткое имя еще до того как этот файл может появиться....


 
clickmaker ©   (2006-08-17 17:37) [1]


> когда изучал скрипты, там это делается легко, всебы нечего,
> до объектной модели скриптов можно добраться и через делфи
> с помощью OLE

зачем так сложно?
GetShortPathName()


 
apic ©   (2006-08-17 17:43) [2]

Извини clickmaker может быть я был пьян, но я эту функцию раз 5 пробывал, какой путь я ей даю, тот она мне и возвращает, хоть короткий он, хоть длинный, попробуй, если эта тварь выдаст тебе короткий путь, то я еще раз попробую и если у тебя получиться, буть добр вышли вызов этой функции буква в букву... Может это я в единственном параметре запутался...


 
clickmaker ©   (2006-08-17 17:46) [3]


> Может это я в единственном параметре запутался

может... а как вызывал?


 
apic ©   (2006-08-17 17:51) [4]

Насколько я помню (комп не мой, Делфи не установлен) у это твари один параметр =>, что примерно так:
var
  ShortPath:String;
  fullLongPath:String;
...
fullLongPath:="c:\winnt\document and settings\cool.txt"; // к примеру
ShortPath:=GetShortPathName(fullLongPath);


 
begin...end ©   (2006-08-17 17:51) [5]

> apic ©   (17.08.06 17:30)

> а мне нужно получить короткое имя еще до того как этот файл
> может появиться....

Сомневаюсь, что это возможно.


 
apic ©   (2006-08-17 17:55) [6]

begin...end, а можно по подробнее, у меня исходник не верный или это не возможно в принципе...


 
Ketmar ©   (2006-08-17 17:57) [7]

> [0] apic ©   (17.08.06 17:30)
"до" не получишь. помжно максимум попробовать угадать. и ошибиться.


 
apic ©   (2006-08-17 17:58) [8]

Так я не был пьян?!


 
begin...end ©   (2006-08-17 17:59) [9]

> apic ©   (17.08.06 17:55) [6]

И то, и другое.


 
apic ©   (2006-08-17 18:02) [10]

Недогон, что ли?...


 
clickmaker ©   (2006-08-17 18:03) [11]


> Сомневаюсь, что это возможно

кстати, да. Вот у меня есть папки
Microsoft ActiveSync
Microsoft Baseline Security Analyzer
Microsoft Firewall Client
Microsoft Office
Microsoft SQL Server
Microsoft Visual Studio
Microsoft Works

и как генерить имя, если заранее не известно, сколько у меня папок будет с Microsoft начинаться?


 
begin...end ©   (2006-08-17 18:05) [12]

> apic ©   (17.08.06 18:02) [10]

У Вас?


 
apic ©   (2006-08-17 18:06) [13]

Но винда то это как-то делает, кроме того я знаю, как это делает дос, но дос русские имена не коверкает, а винда их еще и цифирки превращает и в конце концов, зачем эти уроды из Microsoft, придумали GetShortPathName(), если она не хрена не делает...


 
begin...end ©   (2006-08-17 18:16) [14]

> apic ©   (17.08.06 18:06) [13]
> придумали GetShortPathName(), если она не хрена не делает...

Она делает. Если файл существует на диске. А если его на диске нет, то не делает.

Что тут непонятного-то?


 
clickmaker ©   (2006-08-17 18:16) [15]


> зачем эти уроды из Microsoft, придумали GetShortPathName(),
> если она не хрена не делает

чуть что, сразу MS виноват? Это из серии "кофе на клавиатуру тоже вирус пролил?"

var szShortPath: array[0..MAX_PATH] of char;
GetShortPathName("D:\Program Files\Microsoft SQL Server\80\Tools\Templates", szShortPath, SizeOf(szShortPath));

дает

D:\PROGRA~1\MICROS~4\80\Tools\TEMPLA~1


 
Ketmar ©   (2006-08-17 18:17) [16]

> [13] apic ©   (17.08.06 18:06)
напиши лучше.


 
clickmaker ©   (2006-08-17 18:23) [17]

Да, что мешает?
Возьми путь, разбей на части (папка(и), имя, расширение), урежь каждую до 8 символов, вот тебе и будет короткое имя


 
apic ©   (2006-08-18 07:23) [18]

Извините мужики, до меня хоть позно, но дошло.....



Страницы: 1 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.056 c
2-1165313272
daser
2006-12-05 13:07
2006.12.24
Как перевести символ в шестнадцатиричную строку и обратно?


3-1160572206
Alexander_K
2006-10-11 17:10
2006.12.24
Значение поля из ClientDataSet


15-1164968118
DillerXX
2006-12-01 13:15
2006.12.24
Го


15-1164796481
skiner
2006-11-29 13:34
2006.12.24
Ваше мнение о Троянописателях и Вирусописателях?


2-1165248285
PP
2006-12-04 19:04
2006.12.24
Связь нескольких запросов средствами Делфи......