Страница 1 из 1

Путь к файлам в windows и linux

Добавлено: 25 мар 2016, 20:46
vapekreng
Всем доброго времени суток. Возник такой нюанс: в windows и linux используются различные символы для написания пути к файлу, это \ и /
Подскажите, каким образом можно организовать распознавание операционной системы в программе, чтобы не делать отдельную версию для каждой? Или есть какой-нибудь другой вариант? Буду рад любому совету. Пишу в Lazarus на Object Pascal. Заранее спасибо.

Re: Путь к файлам в windows и linux

Добавлено: 25 мар 2016, 20:55
Максим Кич
vapekreng писал(а):Всем доброго времени суток. Возник такой нюанс: в windows и linux используются различные символы для написания пути к файлу, это \ и /
Подскажите, каким образом можно организовать распознавание операционной системы в программе, чтобы не делать отдельную версию для каждой? Или есть какой-нибудь другой вариант? Буду рад любому совету. Пишу в Lazarus на Object Pascal. Заранее спасибо.
Вообще вот руководство по мультиплатформенному программированию на Free Pascal

Оттуда по сути вопроса, системные константы:
  • PathSep, PathSeparator: разделитель для соединения разных путей вместе (';', ...)
  • PathDelim, DirectorySeparator: разделитель директорий в пути ('/', '\', ...)
  • LineEnding: последовательность конца строки (#13#10 - CRLF, #10 - LF, ...)
Поскольку могут быть нюансы с удвоением слэшей (оттуда же):
  • FullFilename:=FilePath+PathDelim+ShortFilename; // Может вызвать удвоение слэша
  • FullFilename:=AppendPathDelim(FilePath)+ShortFilename); // Создаёт только один PathDelim
  • FullFilename:=TrimFilename(FilePath+PathDelim+ShortFilename); // Создаёт только один PathDelim и выполняет дополнительную очистку пути

Re: Путь к файлам в windows и linux

Добавлено: 25 мар 2016, 20:59
vapekreng
За ссылку спасибо, именно то, что надо. Буду разбираться))