QFileInfo :: exist () для пути к файлу общего диска - PullRequest
2 голосов
/ 02 сентября 2011

Вопрос от новичка в QT: когда я предоставляю метод exist () объекта QFileInfo с путем к файлу общего диска, он всегда возвращает false, даже если я экранирую каждый обратный слеш другим обратным слешем (т. Е. \\ 10.1. 2.34.56 \ dir1). И да, каталог существует :) Может ли здесь быть какая-то другая проблема, например, отсутствие разрешения для рассматриваемого каталога? Заранее спасибо за любой свет, который вы могли бы пролить на этот вопрос ...

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Кажется, что он работает правильно в XP (с Qt 4.7.3) с двойной или обратной косой чертой (// ip / share / filepath).

Попробуйте получить URL файла через QFileDialog::getOpenFileName.Поскольку он использует собственный диалог, он должен запросить ваш логин / пароль, если это необходимо.Если QFileInfo может обнаружить, что файл существует, вы можете попробовать использовать собственный API ( Windows Networking ) для программного подключения или разрешения доступа к общей сетевой папке.

0 голосов
/ 23 сентября 2011

Как оказалось, моя проблема была связана с разрешениями и не имела отношения к экранированию от обратной косой черты.

Приложение, которое я унаследовал, на самом деле имеет два компонента: i) окно, предоставляющее графический интерфейс для приложения, и (ii) служба Window, выполняющая реальную работу.Окно смогло «увидеть» общий диск, потому что у идентификатора пользователя Windows, для которого он работал, было разрешение для этого диска, в то время как служба Windows, работающая как локальная система, не смогла.Как только я использовал окно «Службы», чтобы изменить службу для работы под ИД пользователя с разрешениями для этого диска, он запустился просто отлично.Спасибо за ваш ответ ...

...