LINUX.ORG.RU

GetDir без указания «номера» диска

 , ,


0

1

Мне нужно получить PATH до файла, по имени файла Filename.
System.GetDir берёт первым аргументом номер диска: 0 - Current, 1 - C, 2 - D. Вторым аргументом Filename.
Есть ли аналогичная функция без такой привязки к Microsoft DOS (номеру диска)?

★★★★★

Ответ на: комментарий от Gvidon

но всё равно нагуглил с первой попытки

А что ты нагуглил? Я же попросил без drivenr, аналог функции. Зачем мне указывать диск, если путь устанавливается по имени файла однозначно. Делать велосипед обрезанием по '\' пока не хочу.

pacify ★★★★★
() автор топика
Ответ на: комментарий от Gvidon

, которая будет перевызывать GetDir.

То есть, ты предлагаешь самому вычислять какой там в пути к файлу диск (C:, D: и т.п.), и подставлять его номер?

pacify ★★★★★
() автор топика
Ответ на: комментарий от anonymous

man nftw

Спасибо, не знал о такой функции. Давно её искал.

pacify ★★★★★
() автор топика
Ответ на: комментарий от record

block deveice MAJOR MINOR numbers

ох уж эти нубы

anonymous
()
Ответ на: комментарий от record

Что это такое вообще?

Это наследие BIOS, там была нумерация жётских дисков и флопповодов при вызове файловых функций BIOS, INT 13H:

0x80 HDD Primary/Master   C:
0x81 HDD Primary/Slave    D:
0x82 HDD Secondary/Master E:
0x83 HDD Secondary/Slave  F:

pacify ★★★★★
() автор топика
Ответ на: комментарий от bormant

Нет. OpenDialog.FileName, как я понимаю, возвращает абсолютный путь.

pacify ★★★★★
() автор топика

System.GetDir берёт первым аргументом номер диска: 0 - Current, 1 - C, 2 - D. Вторым аргументом Filename.
Есть ли аналогичная функция без такой привязки к Microsoft DOS (номеру диска)?

А ты от нолика в процедуре обанкротишься? Всё же работает в линуксе с фиктивным параметром.

var
s: ansistring;

begin
GetDir(0,s);
writeln(s);
end.
Есть аналогичная функция Sysutils.GetCurrentDir, но этот модуль даже при компиляции с опциями -XX -CX увеличивает вес бинаря на 70 кило. Отличная цена за сэкономленный нолик!

Napilnik ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.