ファイルやフォルダの属性を調べる関数と、その関数の返り値について検証してみました。
GetAttr関数構文
ファイルやフォルダの属性を調べるには
GetAttrを使用します。
Function GetAttr(pathname as string) as VBFileAttribute
引数pathnameにはフォルダやファイルのアドレスを指定します。
GetAttr関数の返り値はVBFileAttribute列挙型です。
VBFileAttribute列挙型
定数 | 値 | 内容 |
---|---|---|
vbNormal | 0 | 標準 |
vbReadOnly | 1 | 読み取り専用 |
vbHidden | 2 | 隠しファイル |
vbSystem | 4 | システムファイル |
vbVolume | 8 | ディスクドライブのボリュームラベル |
vbDirectory | 16 | フォルダーまたはディレクトリ |
vbArchive | 32 | 前回のバックアップ以降に変更されているファイル |
vbAlias | 64 | リンクまたはショートカット |
2019/01/27追記
以下はVBFileAttribute列挙型では定義されていないが、GetAttr関数の返り値として返ってくる値です。
値 | 内容 |
---|---|
128 | 他の属性なし |
256 | 一時ファイル |
512 | スパースファイル |
1024 | リパースポイント |
4096 | オフライン属性 |
8192 | 非インデックス対象ファイル |
16384 | 暗号化 |
32768 | 整合性 |
65536 | (システムが利用するために予約) |
131072 | スクラブ ファイルなし |
1282048 | 他の属性なし圧縮 |
GetAttr関数使用例
GetAttr("C:\Users\XXX\Desktop\TEST")
私の環境で上記のコードを実行すると
16が返ってきます。
フォルダーですね。
GetAttr("C:\Users\XXX\IntelGraphicsProfiles")
このコードを実行すると22が返ってきます。
上述した返り値の一覧にはありません。
複数の属性を持つ場合、返り値は属性の足し算で返ってきます。
この場合でいうと22 = 16 + 4 + 2 が返ってきていますので
vbDirectory + vbSystem + vbHidden の3つの属性を持っていることになります。
まとめ
ファイル・フォルダの属性を調べるGetAttr関数を紹介しました。
今回は使用例で3つの属性が含まれているという話をしましたが、
次回は返り値の数値に調べたい属性が含まれているかいないかの判定方法を検証します。