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で確認。