次は、今回のメインテーマであるファイル・システムを構成するアイテムのコレクションとオブジェクトの話題に移ろう。
FileSystemObjectオブジェクトのオブジェクト・モデルには、1つのファイルを表すFileオブジェクト、複数のFileオブジェクトの集合を表すFilesコレクション、1つのフォルダを表すFolderオブジェクト、複数のFolderオブジェクトの集合を表すFoldersコレクション、1つのドライブを表すDriveオブジェクト、複数のDriveオブジェクトの集合を表すDrivesコレクションが含まれている。これらのオブジェクトはCreateObjectメソッド(もしくは関数)では直接生成できないので、FileSystemObjectオブジェクト(ProgIDは“Scripting.FileSystemObject”)の以下のメンバから間接的に呼び出す。これらのメンバで生成したオブジェクトのメンバからさらに呼び出さないとたどり着けないオブジェクト/コレクションもある。
| プロパティ/メソッド | 用途 | 
|---|---|
| Drivesプロパティ | Drivesコレクションを返す | 
| GetDriveメソッド | Driveオブジェクトを返す | 
| GetFolderメソッド | Folderオブジェクトを返す | 
| GetSpecialFolderメソッド | 特殊フォルダのFolderオブジェクトを返す | 
| GetFileメソッド | Fileオブジェクトを返す | 
まずはそれぞれのオブジェクト/コレクションを概説しよう。
次に、これらのオブジェクト/コレクションにどんなプロパティやメソッドが含まれているか、次の5つに分類して紹介しよう。
1.Fileオブジェクト/Folderオブジェクトに共通のメンバ
| プロパティ/メソッド | 用途 | 
|---|---|
| Nameプロパティ | ファイル/フォルダ名(値の設定可) | 
| ShortNameプロパティ | DOS(いわゆる8+3形式)でのファイル/フォルダ名 | 
| Pathプロパティ | フルパス | 
| ShortPathプロパティ | DOSでのパス | 
| ParentFolderプロパティ | 親フォルダのパス | 
| Driveプロパティ | ドライブのパス | 
| DateCreatedプロパティ | 作成日時 | 
| DateLastAccessedプロパティ | アクセス日時 | 
| DateLastModifiedプロパティ | 更新日時 | 
| Sizeプロパティ | サイズ(bytes) | 
| Typeプロパティ | ファイルタイプ名 | 
| Attributesプロパティ | 属性(値の設定可) | 
| Copyメソッド | コピーする | 
| Deleteメソッド | 削除する | 
| Moveメソッド | 移動する | 
2.Fileオブジェクトのメンバ
| プロパティ/メソッド | 用途 | 
|---|---|
| OpenAsTextStreamメソッド | テキスト・ファイルとして開き、TextStreamオブジェクトを返す | 
3.Folderオブジェクトのメンバ
| プロパティ/メソッド | 用途 | 
|---|---|
| IsRootFolderプロパティ | ルート・フォルダ(C:\など)ならTrueを返す | 
| Filesプロパティ | そのフォルダにあるすべてのファイルに対応するFileオブジェクトを含んだFilesコレクションを返す | 
| SubFoldersプロパティ | そのフォルダにあるすべてのサブフォルダに対応するFolderオブジェクトを含んだFoldersコレクションを返す | 
4.Driveオブジェクトのメンバ
| プロパティ/メソッド | 用途 | 
|---|---|
| DriveLetterプロパティ | ドライブ・レター(アルファベット1文字) | 
| DriveTypeプロパティ | ドライブの種類(HDD、CD-ROM、RAM、Removable、Network) | 
| FileSystemプロパティ | ファイル・システム(FAT、FAT32、NTFS、CDFS) | 
| IsReadyプロパティ | ドライブが準備できていたらTrueを返す | 
| VolumeNameプロパティ | ボリューム・ラベル(値の設定可) | 
| ShareNameプロパティ | ネットワークでの共有名 | 
| SerialNumberプロパティ | シリアル・ナンバー | 
| AvailableSpaceプロパティ | 空きディスク領域(bytes) | 
| FreeSpaceプロパティ | 空きディスク領域(bytes) | 
| TotalSizeプロパティ | ドライブの容量 | 
| RootFolderプロパティ | ドライブのルート・フォルダのFolderオブジェクトを返す | 
5.Filesコレクション/Foldersコレクション/Drivesコレクションに共通のメンバ
| プロパティ/メソッド | 用途 | 
|---|---|
| Countプロパティ | 要素に含まれるオブジェクトの数を返す。例えばFilesコレクションなら、含まれるFileオブジェクトの数 | 
| Itemプロパティ | 要素に含まれるオブジェクトを返す。引数にはファイル名/フォルダ名/ドライブ名を指定可 | 
| Addメソッド | 新しいFolderオブジェクトを作成し、それを含んだFoldersコレクションを新たに返す(Foldersコレクションのみ) | 
以下、これらのオブジェクト/コレクションのメンバの使い方について述べていく。今回は「1.Fileオブジェクト/Folderオブジェクトに共通のメンバ」のみ解説する。その前に、どのオブジェクトがどのオブジェクトのメンバから取得できるのかをまとめた表を示しておく。
| 取得するオブジェクト/コレクション | 使用するオブジェクト/コレクション | 使用するプロパティ/メソッド | |
|---|---|---|---|
| Fileオブジェクト | FileSystemObjectオブジェクト | GetFileメソッド | |
| Filesコレクション | Itemプロパティ | ||
| Folderオブジェクト | FileSystemObjectオブジェクト | GetFolderメソッド | |
| FileSystemObjectオブジェクト | CreateFolderメソッド | ||
| FileSystemObjectオブジェクト | GetSpecialFolderメソッド | ||
| Foldersコレクション | Itemプロパティ | ||
| Driveオブジェクト | RootFolderプロパティ | ||
| Driveオブジェクト | FileSystemObjectオブジェクト | GetDriveメソッド | |
| Drivesコレクション | Itemプロパティ | ||
| Filesコレクション | Folderオブジェクト | Filesプロパティ | |
| Foldersコレクション | Folderオブジェクト | SubFoldersプロパティ | |
| Foldersコレクション | Addメソッド | ||
| Drivesコレクション | FileSystemObjectオブジェクト | Drivesプロパティ | |
例えば「Fileオブジェクトを取得するには、FileSystemObjectオブジェクトのGetFileメソッドか、FilesコレクションのItemプロパティを使う」ということが、この表から分かる。なお、オブジェクトは対応するコレクションをFor Each〜Nextステートメントで列挙することでも得られる。これからの説明で分からなくなった場合は参考にしてもらいたい。
Copyright© Digital Advantage Corp. All Rights Reserved.