GetAttr 関数
更新 : 2007 年 11 月
ファイル、ディレクトリ、またはフォルダの属性を表す FileAttribute 型の値を返します。
My 機能を使用すると、FileAttribute を使用するよりもファイル I/O 処理の生産性とパフォーマンスが格段に向上します。詳細については、「My.Computer.FileSystem オブジェクト」を参照してください。
Public Function GetAttr(ByVal PathName As String) As FileAttribute
パラメータ
- PathName
必ず指定します。ファイル名、ディレクトリ名、フォルダ名を指定する文字列 (String) 式です。PathName にはディレクトリ名またはフォルダ名、およびドライブ名も含めて指定できます。
戻り値
GetAttr によって返される値は、次の表に示す列挙型値の合計です。
値 |
定数 |
説明 |
---|---|---|
Normal |
vbNormal |
通常。 |
ReadOnly |
vbReadOnly |
読み取り専用です。 |
Hidden |
vbHidden |
隠しファイル。 |
System |
vbSystem |
システム ファイル。 |
Directory |
vbDirectory |
ディレクトリまたはフォルダ。 |
Archive |
vbArchive |
前回のバックアップ以降に変更されているファイル。 |
Alias |
vbAlias |
他の名前が付いているファイル。 |
メモ : |
---|
ここに示した列挙型値は、Visual Basic 言語で設定されています。これらの名前は、実際の値の代わりにコード内のどの部分でも使用できます。 |
例外
例外の種類 |
エラー番号 |
条件 |
---|---|---|
Pathname が無効です。またはワイルドカードを含んでいます。 |
||
対象のファイルが存在しません。 |
非構造化エラー処理を使用する Visual Basic 6.0 アプリケーションをアップグレードする場合は、"エラー番号" の列を参照してください(エラー番号を Number プロパティ (Err オブジェクト) と比較することもできます)。ただし、可能であれば、このようなエラー制御は Visual Basic の構造化例外処理の概要 に置き換えることを検討してください。
解説
どの属性が設定されているかを調べるには、And 演算子を使って、GetAttr 関数によって返される値と、調べる対象となる個々のファイル属性の値をビットごとに比較します。結果が 0 以外の場合は、その属性がファイルに設定されています。たとえば、Archive 属性が設定されていない場合、次の And 式の戻り値は 0 です。
Result = GetAttr(FName) And vbArchive
Archive 属性が設定されている場合は、0 以外の値が返されます。
使用例
GetAttr 関数を使って、ファイルおよびディレクトリまたはフォルダの属性を調べるコード例を次に示します。
Dim MyAttr As FileAttribute
' Assume file TESTFILE is normal and readonly.
MyAttr = GetAttr("C:\TESTFILE.txt") ' Returns vbNormal.
' Test for normal.
If (MyAttr And FileAttribute.Normal) = FileAttribute.Normal Then
MsgBox("This file is normal.")
End If
' Test for normal and readonly.
Dim normalReadonly As FileAttribute
normalReadonly = FileAttribute.Normal Or FileAttribute.ReadOnly
If (MyAttr And normalReadonly) = normalReadonly Then
MsgBox("This file is normal and readonly.")
End If
' Assume MYDIR is a directory or folder.
MyAttr = GetAttr("C:\MYDIR")
If (MyAttr And FileAttribute.Directory) = FileAttribute.Directory Then
MsgBox("MYDIR is a directory")
End If
スマート デバイス開発者のためのメモ
この関数はサポートされていません。
必要条件
名前空間 : Microsoft.VisualBasic
**モジュール :**FileSystem
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)