Доступ к родительскому диску относительно в Windows

Есть ли какой-нибудь «встроенный» способ доступа к родительскому диску «относительно» в Windows?

т. е. вместо того, чтобы моя программа сохраняла путь, например K:\1\2\3 (K:\ является USB-накопителем), я бы хотел, чтобы она сохраняла путь без буквы диска, таким образом, если буква диска встречается чтобы изменить в будущем, сохраненный путь все еще будет действительным, поскольку он является динамическим.

Я знаю, что могу вручную заменить букву диска чем-то вроде Flash:\ перед сохранением пути, а затем перед доступом к сохраненному пути заменить Flash:\ на букву диск, на котором в данный момент работает моя программа, но я хотел знать, есть ли «встроенный» способ сделать это, где я мог бы просто передать определенную строку в Windows вместо буквы диска, и Windows автоматически заменит это с буквой диска, на котором запущена текущая программа.


person user399585    schedule 22.07.2010    source источник


Ответы (1)


Попробуйте просто использовать \1\2\3\

person Daniel A. White    schedule 22.07.2010
comment
О! Я попробовал это первым, прежде чем спрашивать здесь, и это не сработало. Причина, по которой это не сработало: SHGetFileInfo() по какой-то причине не любит этот тип пути. Однако отлично работает с fopen(), что я и не думал пробовать. Спасибо! - person user399585; 23.07.2010
comment
Это может привести к проблемам: том, к которому может быть применен относительный каталог, не обязательно является томом, на котором находится исполняемый файл программы (другими словами, текущий каталог, к которому может применяться этот путь, может находиться на другом диске, а не образ программы). - person Michael Burr; 23.07.2010
comment
@Michael Burr: Спасибо, тогда, возможно, мне следует заменить первую букву \ на букву диска, используемую в argv[0] (путь к исполняемому файлу программы)? - person user399585; 23.07.2010