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

更新 : 2007 年 11 月

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

4z07fe67.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、ダイアログ ボックスで使用可能なオプションや、メニュー コマンドの名前や位置が、ヘルプに記載されている内容と異なる場合があります。このヘルプ ページは、全般的な開発設定を考慮して記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「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 の文字列である、2) 空白だけが含まれている、3) 無効な文字が含まれている、4) デバイス パスである (\\.\ で開始されている)、のいずれかの理由が考えられる (ArgumentException)。

  • パスが Nothing であるため、有効でない (ArgumentNullException)。

  • パスがシステムで定義されている最大長を超えている (PathTooLongException)。

  • パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効である (NotSupportedException)。

  • ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException)。

参照

処理手順

方法 : Visual Basic でディレクトリの属性を確認する

参照

My.Computer.FileSystem.GetDirectoryInfo メソッド