Главная страница
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.03 c
15-1165164998
ANTPro
2006-12-03 19:56
2006.12.24
Проблема с винтом


6-1154531926
learner
2006-08-02 19:18
2006.12.24
Быстрая проверка FileExists по сети


4-1155908277
apic
2006-08-18 17:37
2006.12.24
Серийные номера


2-1165227033
TrainerOfDolphins
2006-12-04 13:10
2006.12.24
EnableControls- AccessViolation


8-1145348353
Quattro
2006-04-18 12:19
2006.12.24
Эффект воды в 2D