Название: Проверка корректности пути к файлу Отправлено: deMax от Июль 06, 2018, 15:34 Понятно что вопрос весьма не простой, но есть ли способ не сохраняя файл узнать можно ли его сохранить на данной фс. По началу устроит fat32, ext3/4.
Ну и можно хотя бы с отсечением по максимому(т.е. пусть отсекуться допустимые файлы, но если программа говорит что сохранить можно, файл сохраниться). Название: Re: Проверка корректности пути к файлу Отправлено: deMax от Июль 06, 2018, 15:36 https://stackoverflow.com/questions/3038351/check-whether-a-string-is-a-valid-filename-with-qt
Может в Qt есть что то готовое? буст не подходит(да и не полный) Название: Re: Проверка корректности пути к файлу Отправлено: ViTech от Июль 06, 2018, 16:36 В С++17 есть Filesystem library (https://en.cppreference.com/w/cpp/filesystem), из буста взятая. Может там что-то полезное есть. std::filesystem::path::native (https://en.cppreference.com/w/cpp/filesystem/path/native) или ещё что.
Название: Re: Проверка корректности пути к файлу Отправлено: lit-uriy от Июль 09, 2018, 10:00 По-моему самый простой способ это создать файл и посмотреть, не произойдёт ли при этом ошибки.
Название: Re: Проверка корректности пути к файлу Отправлено: deMax от Июль 09, 2018, 17:04 То что простой, не спорю. Только пока юзверь имя файла напишет, много файлов создастся. А если папка только на запись и удаление запрещенно? А путь как проверить? Особенно /dev/null - этак можно и в системе что нибудь сломать.
Название: Re: Проверка корректности пути к файлу Отправлено: vic57 от Июль 10, 2018, 18:10 То что простой, не спорю. Только пока юзверь имя файла напишет, много файлов создастся. А если папка только на запись и удаление запрещенно? А путь как проверить? Особенно /dev/null - этак можно и в системе что нибудь сломать. а что за права такие - писать можно, а удалять нельзя?если я открою файл на запись и закрою его, файл обнулится. Код чем не подходит? Название: Re: Проверка корректности пути к файлу Отправлено: qate от Июль 10, 2018, 22:10 Понятно что вопрос весьма не простой, но есть ли способ не сохраняя файл узнать можно ли его сохранить на данной фс. По началу устроит fat32, ext3/4. а в чем смысл не сказать пользователю о сбое сохранения ? а если нельзя создать - как предполагается сказать ? задизаблить кнопку save ? Название: Re: Проверка корректности пути к файлу Отправлено: deMax от Июль 11, 2018, 14:13 да, в диалоге выбора файла для сохранения блокировать кнопку save.
Соответственно постоянно создавать файлы пока пользователь пишет не очень красиво. Ну и если на папке стоит запрет на удаление, будет весело. Название: Re: Проверка корректности пути к файлу Отправлено: qate от Июль 11, 2018, 18:46 да, в диалоге выбора файла для сохранения блокировать кнопку save. имхо задизабленная save вызовет недоумение типа "чтозанах" а сообщение об ошибке - вполне нормально да и обычно нет ошибок, ведь сохранение идет в домашний каталог пользователя а проверять возможность может и не дать точный результат - права, имена и т.п. я бы не стал разработывать и тестировать такой функционал без сильной необходимости Название: Re: Проверка корректности пути к файлу Отправлено: Igors от Июль 13, 2018, 03:21 да, в диалоге выбора файла для сохранения блокировать кнопку save. Не берите дурного в голову и тяжелого в руки. Ото есть системный файловый диалог, вот он пусть и занимается многочисленными правами и.т.п. А приложение должно просто писать "куда скажут" и сообщать о случившейся ошибке. Остальное - надуманоСоответственно постоянно создавать файлы пока пользователь пишет не очень красиво. Ну и если на папке стоит запрет на удаление, будет весело. Название: Re: Проверка корректности пути к файлу Отправлено: deMax от Июль 13, 2018, 08:57 Не берите дурного в голову и тяжелого в руки. Ото есть системный файловый диалог, вот он пусть и занимается многочисленными правами и.т.п. А приложение должно просто писать "куда скажут" и сообщать о случившейся ошибке. Остальное - надумано Стандартный диалог позволяет сохранять файлы с именем <>\:"|?* , а я блокирую кнопку save и вывожу причину через QTooltip.Пока обрубил все что не A-Z|a-z|0-9|,._- и CON, PRN, AUX, NUL, COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 Название: Re: Проверка корректности пути к файлу Отправлено: deMax от Июль 13, 2018, 15:08 Как изменить базовое имя файла? Может есть что то типа QFileInfo::setBaseName? Или только способ ниже?
Код: QFileInfo fileInfo(file); есть конечно const char *basename (const char *__filename) , но char* |