2011-09-02 3 views
1

QF에 대한 질문 : QFileInfo 객체의 exists() 메서드를 공유 드라이브 파일 경로와 함께 제공하면 항상 false가 반환됩니다. 나는 모든 백 슬래시를 다른 백 슬래시 (예 : \\ 10.1.2.34.56 \ dir1)로 이스케이프합니다. 그리고 예, 디렉토리가 존재합니다 :) 문제의 디렉토리에 대한 권한 부족과 같은 여기에 직장에서 다른 문제가있을 수 있습니까? 이 문제에 관해 알려줄 수있는 모든 빛에 대해 미리 감사드립니다 ...공유 드라이브 파일 경로에 대한 QFileInfo :: exists()

답변

0

내 문제는 사용 권한과 관련이 있으며 백 슬래시를 이스케이프 처리하는 것과 관련이 없습니다.

실제로 상속 된 응용 프로그램에는 i) 응용 프로그램에 대한 GUI 인터페이스를 제공하는 창과 실제 작업을 수행하는 Windows 서비스의 두 가지 구성 요소가 있습니다. 로컬 시스템으로 실행중인 Windows 서비스는 실행할 수 없지만 Windows는 실행중인 Windows 사용자 ID에 해당 드라이브에 대한 권한이 있으므로 공유 드라이브를 "볼"수있었습니다. 일단 서비스 창을 사용하여 해당 드라이브에 대한 사용 권한이있는 사용자 ID로 실행되도록 서비스를 변경하면 정상적으로 실행됩니다. 귀하의 답변에 감사드립니다 ...

1

두 배로 된 백 슬래시 또는 단일 슬래시 ('ip // share/filepath')가있는 XP에서 (Qt 4.7.3 사용) 올바르게 작동하는 것 같습니다.).

QFileDialog::getOpenFileName을 통해 파일 URL을 가져 오십시오. 네이티브 대화 상자를 사용하기 때문에 필요할 경우 로그인/암호를 묻습니다.
QFileInfo이 파일을 찾으면 네이티브 API (Windows Networking)를 사용하여 프로그래밍 방식으로 네트워크 공유에 연결하거나 액세스를 허용 할 수 있습니다.

관련 문제