LINUX.ORG.RU

Запись на сетевую шару, узнать что она доступна

 ,


0

1

Добрый день, нужно записать файл в папку на samba, но если вдруг демон самбы отвалился то все равно QFile ф-ия open возвращает, что открытие файла удалось. Как узнать что запись невозможна?


Ответ на: комментарий от Noob_Linux

Кроме как попробовать записать тестовый файл не вижу вариантов.

например попробовать изменить [amc]time у файла.

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от da17

Вы же файл создаёте, почему каталог пустой? И, в целом, смысл в этих проверках? Отвалится же может в любой момент, хоть между create() и write(), хоть во время write().

mky ★★★★★
()
Ответ на: комментарий от da17

При попытке записи write да, я получаю ошибку, а как нибудь можно до попытки записи это проверить?

Создать скрытый файл и сразу удалить, если запись запрещена, то он не создастся, а если всё нормально, то скорее всего успеешь удалить. В крайнем случае, останется мусорный пустой скрытый файл, если отвалится между созданием и удалением. Но вероятность такого, думаю не очень велика. Хотя, на шаре может быть разрешено создание, но запрещено удаление, вроде так можно настроить. Тогда будет некрасиво, да.

А вообще, на SO сходу советуют

QFileInfo my_dir(folderName);

if(my_dir.isDir() && my_dir.isWritable()){
    // Do something
}

И там же проблема описана, если нужна работа под вендой

Platform Specific Issues File permissions are handled differently on Linux/Mac OS X and Windows. In a non writable directory on Linux, files cannot be created. This is not always the case on Windows, where, for instance, the 'My Documents' directory usually is not writable, but it is still possible to create files in it.

Loki13 ★★★★★
()
Последнее исправление: Loki13 (всего исправлений: 3)