📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 797行目: | 797行目: | ||
// ファイルを閉じる | // ファイルを閉じる | ||
file.close(); | file.close(); | ||
</syntaxhighlight> | |||
<br><br> | |||
== ファイルパス == | |||
==== 絶対パスの検証 ==== | |||
ファイルのパスがファイルシステム上で有効な形式を持っているかどうか (例: 不正な文字、パスの構造がシステムの要件を満たしているか等) を検証する。<br> | |||
<br> | |||
Qtでは、有効なパスが有効かどうかを検証するメソッドは存在しない。<br> | |||
しかし、<code>QFileInfo</code>クラスおよび<code>QDir</code>クラスを使用して間接的にパスの妥当性を検証することができる。<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <QFileInfo> | |||
#include <QDir> | |||
// QFileInfoを使ってパスの情報を取得 | |||
QFileInfo FileInfo("/tmp/sample.txt"); | |||
// ファイル名に使用できない文字が含まれているかどうかを確認 | |||
QString fileName = FileInfo.fileName(); | |||
if (fileName.isEmpty() || fileName.contains(QRegExp("[\/\\0]"))) { | |||
// ファイル名に不適切な文字が含まれている場合 | |||
return false; | |||
} | |||
// パスが絶対パスかどうかを確認 (相対パスは不適切とする) | |||
if (!FileInfo.isAbsolute()) { | |||
return false; | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||