ファイルシステムオブジェクトとはファイルやフォルダ、ドライブを操作するためのオブジェクトです。ファイルシステムオブジェクト内には後述のオブジェクトとコレクションが含まれており、これらのオブジェクトについて操作が可能です。
含まれるオブジェクト、コレクション
- File
ファイルオブジェクト。ファイルのタイムスタンプなども取得可能。 - Files
ファイルオブジェクトの集合体(コレクション)。
オブジェクトの数は .Count プロパティで取得可能。 - Folder
フォルダオブジェクト。フォルダ内のファイルやサブフォルダを取得して、
再帰的に処理することが可能。 - Folders
フォルダオブジェクトの集合体(コレクション)。
オブジェクトの数は .Count プロパティで取得可能。 - Drive
ドライブオブジェクト。
リムーバルドライブやネットワークドライブの情報も取得可能。 - Drives
ドライブオブジェクトの集合体(コレクション)。
オブジェクトの数は .Count プロパティで取得可能。 - TextStream
オープン済みのテキストファイルオブジェクト。
テキストファイルに対してシーケンシャルに読み書きが可能。
ファイルやフォルダの操作は『 関数リファレンス – ファイル・フォルダ操作 』で掲載した関数およびステートメントでも可能ですが、ファイルシステムオブジェクトの方がより細かな操作が可能になります。
次節以降に、ファイルシステムオブジェクトのプロパティおよびメソッドと、対応する関数およびステートメントをまとめてみました。いくつかの操作については2つの実現方法が存在するので、どのオブジェクトのプロパティおよびメソッドなのかしっかり区別してください。
例えば、ファイルをコピーする操作には以下の2つの方法が存在します。
- <方法1> ファイルシステムオブジェクトの CopyFile メソッドを使用する
- <方法2> ファイルオブジェクトの Copy メソッドを使用する
このどちらを使うかは、そのときの処理内容により判断します。通常、処理の途中でファイルオブジェクトを取得済みであれば<方法2>、ファイルオブジェクトを取得していないのであれば<方法1>を使用します。
ファイル操作に関連するプロパティ・メソッド
下表の “fso” はファイルシステムオブジェクトを表します。
下表の “file” はファイルオブジェクトを表します。
内容 | FileSystemObjectの プロパティ/メソッド |
対応する関数/ ステートメント |
---|---|---|
ファイルオブジェクト取得 | fso.GetFile | – |
ファイル存在チェック | fso.FileExists | Dir関数 |
ファイルベース名取得 | fso.GetBaseName | – |
ファイル拡張子取得 | fso.GetExtensionName | – |
ファイル名取得 | fso.GetFileName file.Name |
Dir関数 |
ファイル属性取得・設定 | file.Attributes | GetAttr関数 |
ファイルパス取得 | file.Path | – |
ファイルサイズ取得 | file.Size | FileLen、LOF関数 |
ファイルタイプ取得 | file.Type | – |
ファイル作成日時取得 | file.DateCreated | – |
ファイル最終アクセス日時取得 | file.DateLastAccessed | – |
ファイル最終更新日時取得 | file.DateLastModified | – |
親フォルダ取得 | fso.GetParentFolderName file.ParentFolder |
– |
ドライブ名取得 | fso.GetDriveName file.Drive |
– |
ファイル新規作成 | fso.CreateTextFile | Open ステートメント (テキストファイル入出力) |
ファイルオープン | fso.OpenTextFile file.OpenAsTextStream |
Open ステートメント (テキストファイル入出力) |
ファイル名変更 | file.Name | Nameステートメント |
ファイル移動 | fso.MoveFile(※1) file.Move |
Nameステートメント |
ファイルコピー | fso.CopyFile
(※1) file.Copy |
FileCopyステートメント |
ファイル削除 | fso.DeleteFile
(※1) file.Delete |
Killステートメント (※2) |
※1・・・ワイルドカードを使用することで複数のオブジェクトを同時に操作することが可能。
*(アスタリスク):任意の数(0以上)の文字を表します。
? (クエスチョン):任意の1文字を表します。
※2・・・読み取り専用ファイルは削除不可。
フォルダ操作に関連するプロパティ・メソッド
下表の “fso” はファイルシステムオブジェクトを表します。
下表の “folder” はフォルダオブジェクトを表します。
内容 | FileSystemObjectの プロパティ/メソッド |
対応する関数/ ステートメント |
---|---|---|
フォルダオブジェクト取得 | fso.GetFolder | – |
フォルダ存在チェック | fso.FolderExists | Dir関数 |
フォルダ名取得 | folder.Name | Dir関数 |
フォルダ属性取得 | folder.Attributes | GetAttr関数 |
フォルダパス | folder.Path | – |
フォルダタイプ取得 | folder.Type | – |
フォルダ作成日時取得 | folder.DateCreated | – |
フォルダ最終アクセス日時取得 | folder.DateLastAccessed | – |
フォルダ最終更新日時取得 | folder.DateLastModified | – |
親フォルダ取得 | fso.GetParentFolderName folder.ParentFolder |
– |
ドライブ名取得 | fso.GetDriveName folder.Drive |
– |
フォルダ内のファイル取得 | folder.Files | Dir関数 |
フォルダ内のサブフォルダ取得 | folder.SubFolders | Dir関数 |
ファイル新規作成 | folder.CreateTextFile | Open ステートメント (テキストファイル入出力) |
フォルダ作成 | fso.CreateFolder | MkDir、RmDirステートメント |
フォルダ名変更 | folder.Name | Nameステートメント |
フォルダ移動 | fso.MoveFolder
(※1) folder.Move |
– |
フォルダコピー | fso.CopyFolder
(※1) folder.Copy |
– |
フォルダの削除 | fso.DeleteFolder
(※1) folder.Delete |
MkDir、RmDirステートメント |
カレントフォルダ取得 | – | CurDir関数 |
カレントフォルダ変更 | – | ChDir、ChDriveステートメント |
※1・・・ワイルドカードを使用することで複数のオブジェクトを同時に操作することが可能。
*(アスタリスク):任意の数(0以上)の文字を表します。
? (クエスチョン):任意の1文字を表します。
ドライブ操作に関連するプロパティ・メソッド
下表の “fso” はファイルシステムオブジェクトを表します。
下表の “drive” はドライブオブジェクトを表します。
内容 | FileSystemObjectの プロパティ/メソッド |
対応する関数/ ステートメント |
---|---|---|
ドライブオブジェクト取得 | fso.GetDrive | – |
ドライブ存在チェック | fso.DriveExists | Dir関数 |
ドライブ名取得 | drive.DriveLetter | – |
ルートフォルダ取得 | drive.RootFolder | – |
ドライブパス取得 | drive.Path | – |
ドライブタイプ取得 | drive.DriveType | – |
ドライブ状態取得 | drive.IsReady | – |
トータルサイズ取得 | drive.TotalSize | – |
利用可能領域取得 | drive.AvailableSpace | – |
空き領域取得 | drive.FreeSpace | – |
ボリューム名取得 | drive.VolumeName | – |
ドライブ取得(コレクション) | fso.Drives | – |
カレントドライブ変更 | – | ChDir、ChDriveステートメント |
テキストストリーム操作に関連するプロパティ・メソッド
下表の “tso” はテキストストリームオブジェクトを表します。
内容 | FileSystemObjectの プロパティ/メソッド |
対応する関数/ ステートメント |
---|---|---|
ファイルポインタ位置取得 | tso.Line (入力モード 、出力モード ) |
– |
行のカラム位置取得 (行頭からの文字数) | tso.Column (入力モード 、出力モード ) |
– |
文字列書き込み | tso.Write | – |
空白行書き込み | tso.WriteBlankLines | – |
文字列書き込み(自動的に改行) | tso.WriteLine | Print #
または Write # ステートメント (テキストファイル入出力) |
文字列読み込み | tso.Read | – |
1行読み込み | tso.ReadLine | Line Input #
または Input # ステートメント (テキストファイル入出力) |
ファイル全体読み込み | tso.ReadAll | – |
指定文字数スキップ | tso.Skip | – |
指定行数スキップ | tso.SkipLine | – |
ファイル末尾判定 | tso.AtEndOfStream | EOF関数 |
行末尾判定 | tso.AtEndOfLine | – |
ファイルクローズ | tso.Close | Close ステートメント (テキストファイル入出力) |