一時ファイルの作り方
一時ファイルを作りたい場合、QTにはQTemporaryFileという便利なファイルクラスが用意されています。
QFileと異なるのは主に次の点です。
- 常に読み込み・書き込みモードで開く
- ファイルパスが衝突しない
- デストラクタが呼び出されたら自動的に削除
ファイルパスが衝突しないのは非常に重要なので、ファイル名には重複した名前がつかないような仕組みになっています。
名前を重複させないために一時ファイルは "アプリ名.XXXXX" のような形式でシステムの一時ディレクトリに保存されます。
例えばMyAppというアプリケーション名ならある一時ファイルは次のパスに保存されます。
[一時ファイルディレクトリ]/MyApp.hq1067
XXXXXの部分が任意の文字列と数列に置き換わるのでファイル名同士を衝突させず、安全に一時ファイルを作ることが可能です。
コード例
ファイルを一時ファイルにコピーする例を紹介します。
QTemporaryFile tmpFile; QFile::copy("ファイルパス", tmpFile.fileTemplate()); ///ファイルコピー tmpFile.open(); /// ...
一時ファイルのパスはfileTemplate関数から取得できます。
また、setFileTemplate関数を使えば一時ファイルのパスを変更することもできます。
open関数でファイルを開くとき、ファイルは常にReadWriteモードで開かれます。後は普通のQFileの扱い方と同じです。
以上、一時ファイルの作り方でした。では、また!
関連項目
© Kaz