2010-06-11 5 views
15

나는 초급자이며 처음에는 문제가 발생했습니다. SomePath/NewDirectoryA/NewFile.kml 파일을 찾고 있는데 (NewFile.kml은 NewDirectoryA의 유일한 파일이며 프로젝트의 의미를 유지하기 위해이 디렉터리가 있습니다).Qt에서 새 파일을 만드는 방법

SomePath/NewDirectoryA/NewFile.kml이있는 경우 내 코드에서 사용하고 존재하지 않으면 작성해야합니다. 이 파일이 존재하지 않으면이 디렉토리도 SomePath에 존재하지 않습니다. 따라서 파일을 생성해야만 QFile을 사용하여 ReadWrite 또는 WriteOnly 모드로 열 수 있습니다.

하지만 문제는 디렉토리 자체로 파일을 만들어야한다는 것입니다. QFile을 SomePath/NewDirectoryA/NewFile.kml이라는 파일 이름으로 시도했지만 작동하지 않았습니다. 주어진 위치 (SomePath)의 새 디렉토리 (NewDirectorA)에 새로운 파일 (NewFile.kml)을 생성 할 수있는 방법을 제안 해주십시오.

답변

33

는 부울 QFile::open (OpenMode 모드) [가상]

[...]

참고 : 해당 파일이 이미하지 않는 경우 쓰기 전용 또는 읽기 쓰기 모드, 에서 이 존재 함수를 열려고 전에 새 파일을 만들려고합니다. 파일 생성에 대한

Qt의주의가

Platform Specific Issues

파일 권한은 시스템 유닉스와 Windows에서 다르게 처리됩니다. Unix 계열 시스템의 쓰기 불가능 디렉토리에서 파일 을 작성할 수 없습니다. 이것은 Windows에서 항상 해당하지는 않습니다. 인스턴스의 경우 '내 문서'디렉토리는 일반적으로 쓸 수 없지만 은 여전히 ​​파일을 만들 수 있습니다.

디렉토리는

BOOL

가 DIRNAME라는 서브 디렉토리를 생성 QDir::mkdir (CONST QString & DIRNAME) CONST으로 생성된다.

부울 QDir::mkpath (const를 QString & dirPath) const를

디렉토리 경로 dirPath를 작성합니다.

이 함수는 디렉토리를 만드는 데 필요한 모든 부모 디렉토리를 만듭니다.

+1

모든 필요한 상위 디렉토리가있는 파일을 만들 수 없습니까? –

관련 문제