次の方法で共有


方法 : Visual Basic でディレクトリが読み取り専用かどうかを確認する

GetDirectoryInfo メソッドは DirectoryInfo オブジェクトを返します。このオブジェクトには Attributes プロパティがあり、これを照会すると、ディレクトリについての情報を確認できます。ディレクトリが読み取り専用かどうかもその中に含まれています。

注意

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。

ディレクトリが読み取り専用かどうかを確認するには

  1. GetDirectoryInfo メソッドを使用して、指定のディレクトリに対応する DirectoryInfo オブジェクトを取得します。 この例では、TestDirectory ディレクトリに対応する DirectoryInfo を取得します。

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
  2. オブジェクトの 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 でディレクトリの属性を確認する

参照

GetDirectoryInfo