4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Delphiのファイル操作 - System.SysUtilsとSystem.IOUtils

Last updated at Posted at 2022-09-24

Delphiのファイル操作にかかわる関数には従来のSystem.SysUtilとSystem.IOUtilsに似たものがあります
System.IOUtilsにすべて移行できる訳でないのですが,できるだけSystem.IOUtilsにあるものを使うようにするために関係する関数についてdocwikiのパス操作ルーチン(Alexandria)からピックアップして整理してみました。
それから,第28回デベロッパーキャンプの「業務アプリ開発で生かせるDelphiプログラミングテクニック」富永英明(@ht_deko)も参考にさせていただきました。ありがとうございます。
なお,2022/09/24現在,docwikiのリンクはAlexandria(Delphi11)にしています。

関数(定数)名 説明
必須
System.IOUtils.TPath.Combine 2つのパス文字列を結合 +よりも不正なパスを作り出しにくい
System.SysUtils.PathDelim パスの区切り文字定数 ’¥’を再定義しないための覚書
パス名の区切り
System.SysUtils.IncludeTrailingBackslash パス名の末尾が必ず区切り記号になるようにする(非推奨)
System.SysUtils.ExcludeTrailingBackslash 末尾に区切り記号が付いていないパス名を返す(非推奨)
System.SysUtils.IncludeTrailingPathDelimiter パス名の末尾が必ず区切り記号になるようにする
System.SysUtils.ExcludeTrailingPathDelimiter 末尾に区切り記号が付いていないパス名を返す
ファイル名
System.SysUtils.ExtractFileName ファイル名の名前部分と拡張子部分を抽出
System.IOUtils.TPath.GetFileName ファイル名の名前部分と拡張子部分を抽出
System.IOUtils.TPath.GetFileNameWithoutExtension ファイル名の名前部分(拡張子を除く)を抽出
ディレクトリ名
System.SysUtils.ExtractFileDir ファイル名からドライブ部分とディレクトリ部分を返す
System.SysUtils.ExtractFilePath ファイル名からドライブ部分とディレクトリ部分を返す
System.IOUtils.TPath.GetDirectoryName ファイル名からドライブ部分とディレクトリ部分を返す
拡張子
System.SysUtils.ExtractFileExt ファイル名の拡張子部分を返す
System.IOUtils.TPath.GetExtension ファイル名の拡張子部分を抽出
拡張子の変更
System.SysUtils.ChangeFileExt ファイル名の拡張子を変更
System.IOUtils.TPath.ChangeExtension 指定されたパスで示されるファイルまたはディレクトリの拡張子を変更 (.なしを指定できない)
絶対パスを返す
System.SysUtils.ExpandFileName 相対ファイル名の完全パス名を返す
System.IOUtils.TPath.GetFullPath 指定されたパスの絶対パスを返す
ディレクトリの作成
System.SysUtils.CreateDir ディレクトリを作成する
System.IOUtils.TDirectory.CreateDirectory ディレクトリを作成する
System.SysUtils.ForceDirectories 新しいディレクトリを作成(必要に応じて親ディレクトリも作成)
ディレクトリ操作
System.IOUtils.TDirectory.Copy ディレクトリごとファイルをコピー
System.IOUtils.TDirectory.Delete ディレクトリごとファイルを削除 ※サブフォルダがある場合にはRecursiveをTrueにする
System.IOUtils.TDirectory.Move ディレクトリごとファイルを移動 ※移動先に同名のファイルが存在してはならない
ファイル操作
System.IOUtils.TFile.Copy ファイルをコピー
System.IOUtils.TFile.Delete ファイルを削除
System.IOUtils.TFile.Move ファイルを移動 移動先に同名のファイルが存在してはならない
特殊フォルダ
System.IOUtils.TPath.GetTempPath システムの一時ディレクトリへのパスを返します
System.IOUtils.TPath.GetHomePath ユーザーのホーム パスを返します
属性
System.IOUtils.TPath.SetAttributes ファイルまたはディレクトリ属性を設定
System.IOUtils.TPath.GetAttributes ファイルまたはディレクトリ属性を返す
ファイル存在チェック
System.IOUtils.TFile.Exists 指定されたファイルが存在するかどうかを確認
System.SysUtils.FileExists 指定したファイルが存在するかどうかを検査
ディレクトリ存在チェック
System.IOUtils.TDirectory.Exists 指定のディレクトリが存在するかどうかをチェック
System.SysUtils.DirectoryExists 指定したディレクトリが存在するかどうかを判断
VCL(FMXにもあるといいなぁ)
Vcl.FileCtrl.MinimizeName 指定された長さ制限の中に描画できるように完全修飾パス名を短縮
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?