ディレクトリ・ファイル操作の新旧方式

C++Bulider(RadStudio)のディレクトリやファイル操作に関しては、昔ながらのSystem.SysUtils配下の方法と、新しいSystem.IOUtils配下の方法がある。
まったく同一ではないが、基本的な操作は、どちらも似たようなことが出来る。

どちらでもいいといえば良いのだが、クロスプラットフォームを前提に開発するなら、新しいIOUtils配下にしかない関数群を使った方が便利なことが多いと思う。

どうせなら、Windows単体の開発でも、ふだんから新方式を使って慣れておいた方がいいというのが個人的な考え。

主な操作のそれぞれのやり方をまとめてみた。
(引数のpathはフルパスのディレクトリ名またはファイル名)

以下、VclとFiremonkey共通。

使い方
Includeファイル名
SysUtils System.SysUtils.hpp
IOUtils System.IOUtils.hpp
ファイル名からドライブ・ディレクトリ部分を得る
SysUtils ExtractFileDir( path )
IOUtils TPath::GetDirectoryName( path )
ディレクトリ名とファイル名からフルパスのファイル名を作る
SysUtils IncludeTrailingPathDelimiter( path )+filename
IOUtils TPath::Combine(path,filename)
ディレクトリの存在確認
SysUtils DirectoryExists(path)
IOUtils TDirectory::Exists(path)
ファイルの存在有無
SysUtils FileExists(path)
IOUtils TFile::Exists(path)
ディレクトリの作成
SysUtils CreateDir(path)
IOUtils TDirectory::CreateDirectory(path)
空のディレクトリを削除
SysUtils RemoveDir(path)
IOUtils TDirectory::Delete(path)
ディレクトリを中身ごと削除
SysUtils (自前で実装の必要あり)
IOUtils TDirectory::Delete(path,true)
ファイルを削除
SysUtils DeleteFile(path)
IOUtils TFile::Delete(path)

C++Builder Berlin Update2 / Windows7で確認。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です