Qtの基礎 - ディレクトリ

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要



ユーザディレクトリの取得

WindowsのマイドキュメントやLinuxのユーザディレクトリは、環境やバージョンによって変化する。
そのため、ユーザディレクトリを取得するには、QtのクラスであるQStandardPathsクラスを使用する。

取得できる情報は、列挙型QStandardPaths::StandardLocationで定義されている。

  • QStandardPaths::DesktopLocation
    0
  • QStandardPaths::DocumentsLocation
    1
  • QStandardPaths::FontsLocation
    2


以下に、ユーザディレクトリを取得する時に使用される頻度の高いメソッドを記載する。

  • QStandardPaths::displayName
    各プラットフォームごとのディレクトリの名称を取得する。
  • QStandardPaths::standardLocations
    ユーザディレクトリをQStringListクラスを使用して取得する。
    リストの先頭から優先度の高いものが入る。
    リストが空の場合、そのシステムには存在しない種類のディレクトリである。
  • QStandardPaths::writableLocation
    書き込み可能なユーザディレクトリを1つ取得する。
    書き込む必要がある場合は、このメソッドを使用する。


※注意
各ユーザディレクトリが存在しているとは限らないため、取得する前にディレクトリの存在を確認して、存在していなければ作成すること。

以下に、Linuxのユーザディレクトリの取得例を示す。

  • QStandardPaths::DesktopLocation
    ディレクトリの名称 : Desktop
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/デスクトップ
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/デスクトップ
  • QStandardPaths::DocumentsLocation
    ディレクトリの名称 : Documents
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/ドキュメント
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/ドキュメント
  • QStandardPaths::FontsLocation
    ディレクトリの名称 : Fonts
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.fonts
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.fonts
  • QStandardPaths::ApplicationsLocation
    ディレクトリの名称 : Applications
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.local/share/applications
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.local/share/applications, /usr/share/gnome/applications,
                               /usr/local/share/applications, /usr/share/applications
  • QStandardPaths::MusicLocation
    ディレクトリの名称 : Music
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/ミュージック
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/ミュージック
  • QStandardPaths::MoviesLocation
    ディレクトリの名称 : Movies
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/ビデオ
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/ビデオ
  • QStandardPaths::PicturesLocation
    ディレクトリの名称 : Pictures
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/ピクチャ
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/ピクチャ
  • QStandardPaths::TempLocation
    ディレクトリの名称 : Temporary Directory
    書き込み可能なディレクトリのパス : /tmp
    QStandardPaths::standardLocationsメソッドの実行結果 : /tmp
  • QStandardPaths::HomeLocation
    ディレクトリの名称 : Home
    書き込み可能なディレクトリのパス : /home/<ユーザ名>
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>
  • QStandardPaths::DataLocation
    ディレクトリの名称 : Application Data
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.local/share/<ソフトウェア名>
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.local/share/<ソフトウェア名>, /usr/share/gnome/<ソフトウェア名>,
                               /usr/local/share/<ソフトウェア名>, /usr/share/<ソフトウェア名>
  • QStandardPaths::CacheLocation
    ディレクトリの名称 : Cache
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.cache/<ソフトウェア名>
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.cache/<ソフトウェア名>
  • QStandardPaths::GenericDataLocation
    ディレクトリの名称 : Shared Data
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.local/share
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.local/share, /usr/share/gnome,
                               /usr/local/share/, /usr/share/
  • QStandardPaths::RuntimeLocation
    ディレクトリの名称 : Runtime
    書き込み可能なディレクトリのパス : /run/user/<ユーザID>
    QStandardPaths::standardLocationsメソッドの実行結果 : /run/user/<ユーザID>
  • QStandardPaths::ConfigLocation
    ディレクトリの名称 : Configuration
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.config
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.config, /etc/xdg
  • QStandardPaths::DownloadLocation
    ディレクトリの名称 : Download
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/ダウンロード
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/ダウンロード
  • QStandardPaths::GenericCacheLocation
    ディレクトリの名称 : Shared Cache
    書き込み可能なディレクトリのパス : /home/<ユーザ名>/.cache
    QStandardPaths::standardLocationsメソッドの実行結果 : /home/<ユーザ名>/.cache


以下に、Windowsのユーザディレクトリの取得例を示す。

  • QStandardPaths::DesktopLocation
    ディレクトリの名称 : Desktop
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Desktop
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Desktop
  • QStandardPaths::DocumentsLocation
    ディレクトリの名称 : Documents
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Documents
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Documents
  • QStandardPaths::FontsLocation
    ディレクトリの名称 : Fonts
    書き込み可能なディレクトリのパス : C:/WINDOWS/Fonts
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/WINDOWS/Fonts
  • QStandardPaths::ApplicationsLocation
    ディレクトリの名称 : Applications
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs
  • QStandardPaths::MusicLocation
    ディレクトリの名称 : Music
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Music
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Music
  • QStandardPaths::MoviesLocation
    ディレクトリの名称 : Movies
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Videos
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Videos
  • QStandardPaths::PicturesLocation
    ディレクトリの名称 : Pictures
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Pictures
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Pictures
  • QStandardPaths::TempLocation
    ディレクトリの名称 : Temporary Directory
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local/Temp
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local/Temp
  • QStandardPaths::HomeLocation
    ディレクトリの名称 : Home
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>
  • QStandardPaths::DataLocation
    ディレクトリの名称 : Application Data
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>, C:/ProgramData/<ソフトウェア名>
  • QStandardPaths::CacheLocation
    ディレクトリの名称 : Cache
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>/cache
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>/cache
  • QStandardPaths::GenericDataLocation
    ディレクトリの名称 : Shared Data
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local, C:/ProgramData
  • QStandardPaths::RuntimeLocation
    ディレクトリの名称 : Runtime
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>
  • QStandardPaths::ConfigLocation
    ディレクトリの名称 : Configuration
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local/<ソフトウェア名>, C:/ProgramData/<ソフトウェア名>
  • QStandardPaths::DownloadLocation
    ディレクトリの名称 : Download
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/Documents
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/Documents
  • QStandardPaths::GenericCacheLocation
    ディレクトリの名称 : Shared Cache
    書き込み可能なディレクトリのパス : C:/Users/<ユーザ名>/AppData/Local/cache
    QStandardPaths::standardLocationsメソッドの実行結果 : C:/Users/<ユーザ名>/AppData/Local/cache