Forum > Russian
А есть ли готовые решения по "кроссплатформенной" проверке путей?
shraibikus:
Здрасте.
Столкнулся в общем. Беда такого рода. Есть некое приложение, которое кроссплатформенное (Windows, Linux, iOS). Не моё.
И оно (поскольку кроссплатформенное) имеет в себе еще возможность "пользовательского" участия (они ему делают так скажем "аддоны").
Эти самые "аддоны" складываются аккуратно в папку. И имеют определенную структуру.
Однако, известно, что пользователи Windows не задумываются об разнице между "Addons", "addons" а иногда и даже "AddOns"...
И это только один пример, на практике в папке есть несколько подобных файлов и папок.
Внимание вопрос: есть ли готовое решение, которое позволяет DirectoryExists проверить наличие по "addons" имея в виду соответственно и "Addons" и даже "AddOns" вместе взятые за один заход. Или нужно пилить свой обработчик проверки ФС (работать предполагается в том числе и на Linux'ах с их ФС)?
Спасибо.
mig-31:
Что пилить, если все и так ясно.
DirectoryExists и FileExists кроссплатфоменно.
В Windows будет только одна папка. В Unix/Linux возможны варианты, все зависит от файловой системы (Linux и с NTFS умеет работать).
Просто получите список директорий папки в которой находятся "Addons", "addons" и т.д. На NTFS у вас будет всегда только одна папка.
Можете с помощью $IFDEF сделать поиск списка только для UNIX, если у вас пользователи на Linux неработают с NTFS/FAT32
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---{$IFDEF UNIX}{$END_IF}
shraibikus:
Я боюсь что Вы меня не поняли.
Речь о том, что я заведомо не знаю как у них написано. И мне надо проверять наличие папкок и файлов, с оглядкой на привычки Windows-пользователей. Ибо они имеют свойство называть папки даже "AdDoNs" (итд). ФС соответственно в каждом случае может быть разная (я это прекрасно понимаю). Но, ведь если я проверяю под Windows машиной наличие папки так
--- Code: ---If DirectoryExists(...'Addons') then ...
--- End code ---
я получаю истину, если там папка называется на самом деле "AddOns".
Я компилирую это же приложение на Linux (со всеми вытекающими, включая то какая там будет ФС). И там установлена эта же версия аддона (плагина) тем же самым разработчиком, который назвал папку именно "AddOns". А я то по прежнему проверяю по
--- Code: ---If DirectoryExists(...'Addons') then ...
--- End code ---
... но ведь там я получу ложь, так как папка то на самом деле называется "AddOns".
Варианта навести порядок нет - исходное приложение не моё (причем оно прекрасно видит эти разношерстные написания символов и работает с ними, подозреваю потому что там либо моно, либо вообще какой то полувайн - особо и не заморачивался на эту тему, так как изменить это не в моих силах. Я занимаюсь написанием прикладного стороннего софта). Количество этих самых аддонов переваливает за тысячи (и каждый там дротит как хотит). Моя задача именно проверять наличие этих самых папок (что бы произвести с ними определенные операции).
lucamar:
В Linux имена файлов и папок почти всегда чувствительны к регистру, поэтому, если папка называется "AddOns", DirectoryExists(«Addons») вернет False. Только DirectoryExits('AddOns') вернет True.
* Переведено гуглом, извините если это плохо русский
shraibikus:
Спасибо. Я понял.
Нужно колдовать)
Navigation
[0] Message Index
[#] Next page