GetDirectoryInfo メソッドは DirectoryInfo オブジェクトを返します。このオブジェクトには Attributes プロパティがあり、これを照会すると、ディレクトリについての情報を確認できます。ディレクトリが読み取り専用かどうかもその中に含まれています。
注意
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。
ディレクトリが読み取り専用かどうかを確認するには
GetDirectoryInfo メソッドを使用して、指定のディレクトリに対応する DirectoryInfo オブジェクトを取得します。 この例では、TestDirectory ディレクトリに対応する DirectoryInfo を取得します。
Dim reader As System.IO.DirectoryInfo reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
オブジェクトの Attributes プロパティを照会して、読み取り専用かどうかを確認します。
If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then MsgBox("Directory is readonly!") End If
使用例
次の例は、上記のスニペットを完全な形式で表したものです。testDirectory ディレクトリが読み取り専用かどうかを確認し、その結果をメッセージ ボックスで報告します。
Dim reader As System.IO.DirectoryInfo
reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then
MsgBox("File is readonly!")
End If
コードのコンパイル
ディレクトリが存在しない場合でも、DirectoryInfo オブジェクトのプロパティに初めてアクセスするまでは、例外はスローされません。
信頼性の高いプログラミング
次の条件を満たす場合は、例外が発生する可能性があります。
パスは次の理由の 1 つが無効です。それは、長さ 0 の文字列です。 空白だけを含んでいる; それには、無効な文字が含まれています; またはそれがデバイス パスである (始まる \\ です。 \) (ArgumentException).
パスが Nothing であるため、有効でない (ArgumentNullException)。
パスがシステムで定義されている最大長を超えている (PathTooLongException)。
パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効である (NotSupportedException)。
ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException)。
参照
処理手順
方法 : Visual Basic でディレクトリの属性を確認する