qdir 예제

Posted on

반환된 문자열은 유닉스와 같은 일부 운영 체제의 인수와 동일할 수 있습니다. 예를 들어 다음 코드는 QDir에서 세 개의 이름 필터를 설정하여 일반적으로 C++ 원본 파일에 사용되는 확장명만 나열되도록 합니다. 또한 이 예제에서는 QFileDialog를 사용하여 탐색을 용이하게 하는 방법, QTextStream의 스트리밍 연산자가 파일을 읽는 방법, 응용 프로그램에 대한 표준 테이블 표시 프로그램을 제공하기 위해 QTableWidget을 사용하는 방법도 보여 주었습니다. 또한 QDesktopServices 클래스를 사용하여 파일을 열 수 있습니다. 절대 경로의 예로는 문자열 “/tmp/석영”이 있으며 상대 경로는 “src/fatlib”처럼 보일 수 있습니다. isRelative() 함수를 사용하여 QDir이 상대 또는 절대 파일 경로를 사용하고 있는지 확인할 수 있습니다. convertToAbs()를 호출하여 상대 QDir을 절대 QDir로 변환합니다. 단순화된 경로의 경우 cleanDirPath()를 사용합니다. 기호 링크가 없거나 중복된 “..” 요소가 없는 경로를 얻으려면 요소는 canonicalPath()를 사용합니다.

경로는 setPath())로 설정하고 cd() 및 cdUp()으로 변경할 수 있습니다. 예를 들어 사용자 인터페이스에 표시될 경로를 준비하거나 네이티브 구분 기호를 명령줄 인수로 예상하는 프로세스를 포크해야 하는 경우와 같이 기본 구분 기호를 사용해야 하는 상황이 있습니다. 다음 코드는 두 디렉터리가 있는지 확인합니다. 이 예제에서는 첫 번째 파일은 수행하지만 두 번째 는 그렇지 않습니다. Dirs 및 Drives 플래그도 이 조합에 포함된 경우 모든 드라이브, 디렉터리, 응용 프로그램에서 읽고, 쓰거나 실행할 수 있는 모든 파일 및 이러한 파일/디렉터리에 대한 심볼 링크를 나열할 수 있습니다. 예를 들어 entryList() 및 entryInfoList()가 “.cpp” 또는 “.h”로 끝나는 모든 파일을 나열하려면 dir.setNameFilter(“*.cpp*.h”) 또는 dir.setNameFilter(“*.cpp;*.h”)를 사용합니다. 기호 링크가 유지됩니다. 이 함수는 표준 경로를 반환하지 않고 입력의 가장 간단한 버전입니다. 예를 들어 “./local”은 “local”, “local/.”가 됩니다.

/bin”은 “bin”과 “/local/usr/.가 됩니다. /bin”은 “/local/bin”이 됩니다. 대부분의 파일 시스템에서 name()은 oldName이 없거나 새 이름이 있는 파일이 이미 있는 경우에만 실패합니다. 그러나 name() 오류가 있을 수 있는 다른 이유도 있습니다. 예를 들어 newName이 열린 파일을 가리키는 경우 하나 이상의 파일 시스템 이름 바꾸기()가 실패합니다. QDir은 응용 프로그램의 작업 디렉토리를 검색하기 위해 응용 프로그램의 작업 디렉토리및 currentDirPath()를 설정하는 setCurrent()와 같은 여러 정적 함수를 제공합니다. 일부 공통 경로에 대한 액세스는 QDir 개체 또는 currentDirPath(), homeDirPath() 및 루트DirPath() 문자열로 경로를 반환하는 정적 함수, 현재(), home() 및 root(루트()와 함께 제공됩니다. 응용 프로그램의 경로에 대해 알고 싶다면 QApplication::applicationDirPath()를 사용합니다. 이 예제는 색상 파일에서 데이터를 읽습니다.

이 파일에는 8가지 색상의 이름이 포함되어 있습니다. 예를 들어 응용 프로그램의 리소스가 myapp.qrc라는 파일에 나열된 경우 main() 함수에 이 줄을 추가하여 리소스가 시작 시 초기화되도록 할 수 있습니다. 이 예제에서는 존재하지 않기 때문에 새 디렉터리가 만들어집니다.