Как получить короткий путь файла если есть длинный
// Короткий
GetShortPathName(LongPath)
// Наоборот длинный
GetFullPathName(ShortPath)
Вечная борьба с короткими и длинными путями файлов!
В Windows функция GetShortPathName используется для получения короткого имени файла или директории, которое обычно используется в командной строке или при отображении имён файлов в Эксплорере. С другой стороны, функция GetFullPathName используется для получения полного пути имени файла или директории.
Вот пример использования этих функций:
#include <Windows.h>
int main() {
// Получение короткого пути имени
char shortPath[255];
GetShortPathName("C:\\long\\path\\to\\file.txt", shortPath, 255);
printf("Короткий путь: %s\n", shortPath);
// Получение полного пути имени
char fullPath[255];
GetFullPathName(shortPath, 255, fullPath, NULL);
printf("Полный путь: %s\n", fullPath);
return 0;
}
В этом примере мы сначала используем GetShortPathName для получения короткого имени файла, расположенного по адресу "C:\long\path\to\file.txt". Функция принимает четыре аргумента: длинное имя пути, буфер для хранения короткого имени пути, размер буфера и необязательный код ошибки.
Затем мы используем GetFullPathName для получения полного имени пути из короткого имени пути. Опять же, функция принимает четыре аргумента: короткое имя пути, буфер для хранения полного имени пути, размер буфера и необязательный код ошибки.
Обратите внимание, что всегда рекомендуется проверять возвращаемое значение этих функций, чтобы убедиться, что они были успешными. Кроме того, учитывайте, что GetShortPathName может обрезать имя файла, если оно превышает максимальную допустимую длину (обычно 248 символов).
В качестве альтернативных решений можно использовать функцию SHGetPathFromIDList из Shell API для получения полного имени пути из короткого имени пути. Функция принимает структуру ITEMIDLIST в виде входного параметра и возвращает полное имя пути.
Также, если вы работаете с .NET, можно использовать метод Path.GetFullPath для преобразования короткого имени пути в полный путь:
Надеюсь, это поможет! Пожалуйста, не стесняйтесь задавать дополнительные вопросы.
Для получения короткого пути файла из длинного и наоборот, используются функции GetShortPathName и GetFullPathName в Windows API.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.