2012-09-24 1 views
1

i MAC의 샘플 QT 프로젝트에서 작업 중이며 파일을 저장하기 위해 원시 대화 상자에 QFileDialog :: getSaveFileName API를 사용하고 있습니다. 읽기 전용 인 디렉토리에 파일을 저장하면 여전히 저장됩니다 !!! 그러나 행동은 그것이 오류 메시지를 제공해야합니다. Windows 시스템에서 모든 것이 잘 작동한다는 것을 알았을 때 오류 메시지가 표시되지만 MAC ID에서는 아무도이 초기에 직면 할 수 없습니까?제한된 위치에 QFileDialog :: getSaveFileName을 사용하여 파일을 저장하면 오류 메시지가 표시되지 않습니다.

+0

사용자의 디렉토리 만 읽었습니까? OSX에서 읽기 전용 디렉토리에 파일을 만들 수 있다면 매우 놀랍습니다. 결국, 이것은 Qt에 의해 처리되는 것이 아니라 os에 의해 ... –

+0

나는 그저 파일을 저장하려고 시도하고 저장된 모든 읽기 전용 권한을 가진 디렉토리를 만들었습니다. 그러나 코코아 네이티브 대화 상자를 사용하면 허용되지 않지만 Qt API를 사용하면 –

+0

실제로 파일을 만들었습니까? 아니면 QFileDialog :: getSaveFileName()에서 파일 이름을 가져 왔습니까? 문서에는 파일 사용 권한에 대한 언급이 없으므로 무시 될 수도 있습니다. 응용 프로그램은 이러한 오류를 사용자에게 알려야합니다. – Claudio

답변

1

getSaveFileName()은 사용자가 선택한 위치의 경로를 반환합니다. 실제로 파일을 생성하지는 않습니다. 파일에 실제로 작성/쓰기를 시도 할 때까지 사용 권한은 문제가되지 않습니다.

+0

이상한 점은 sandy가 OSX와 Windows 사이의 다른 행동을 관찰한다는 것입니다. 그래서 나는 실제로 파일을 생성했다고 의심합니다. –

+0

예 실제로 파일을 읽기 전용 권한으로 수동으로 생성 한 다음 getSaveFileName()을 사용했습니다. 그냥 그 위치에 어떤 x 파일을 저장하고 내 코드는 QString fileName = QFileDialog :: getSaveFileName (NULL, "EXOR DIR", lastExportDir, filters.join (";;"), NULL, QFileDialog :: ShowDirsOnly); ... 이름에서 알 수 있듯이 일부 필터를 사용하고 마지막으로 내 보낸 디렉토리를 가리키는 lastExportDir을 가리 킵니다. –

+0

네, 그렇지만'getSaveFileName()'이 권한을 존중 해줄 것으로 기대하고있는 것처럼 들리 겠지만 실제로는 권한이 필요한 작업을 수행하지 않기 때문에 절대 사용하지 않을 것입니다. – Chris