VB.NET:GetFiles方法-"へのアクセスコストパフォーマンスG:\System ボリューム情報"は拒否されます。"

StackOverflow https://stackoverflow.com/questions/2229800

質問

ここでは私のコード

Dim allFiles As FileInfo() = 
                        tempDir.GetFiles("*.pdf", SearchOption.AllDirectories)

私ンターネットで調べたその変更が必要なアクセス権のアプリから Project properties > View UAC Settings > and change level to level="requireAdministrator"

そのもので使用すれば問題ありません。このような約 FileIOPermission クラスでくださを実施するノウハウです。

==>詳細なコードです。

Dim tempDir As New DirectoryInfo(path)
        Dim FileDetails(4) As String
        Dim iTem As ListViewItem
        If (tempDir.Attributes <> FileAttributes.System) Then
            Dim allFiles As FileInfo() = tempDir.GetFiles("*.pdf", SearchOption.AllDirectories)
            Dim oneFIle As FileInfo
            For Each oneFIle In allFiles
                FileDetails(0) = oneFIle.Name()
                FileDetails(1) = oneFIle.FullName()
                FileDetails(2) = oneFIle.Length() / (1024 * 1024)
                FileDetails(2) = FileDetails(2).Remove(5)
                iTem = New ListViewItem(FileDetails)
                ListView1.Items.Add(iTem)
            Next
        End If

パス文字列が含まれる経路に必要な、この場合 G:\

役に立ちましたか?

解決 2

[OK]を、私はケースを解決だと思う、私は、各フォルダを反復その属性を確認し、リストに追加..私はそれが働いていると思う。.. Plzはそれをチェックビット..

Dim tempDir As New DirectoryInfo(path)
    Dim FileDetails(4) As String
    Dim iTem As ListViewItem
    Try
        Dim allFiles As FileInfo() = Nothing 
        For Each Directory In tempDir.GetDirectories()
            Try
                If (Directory.Attributes <> FileAttributes.System) Then
                    allFiles = Directory.GetFiles("*.pdf", SearchOption.AllDirectories)
                End If
                Dim oneFIle As FileInfo

                For Each oneFIle In allFiles
                    FileDetails(0) = oneFIle.Name()
                    FileDetails(1) = oneFIle.FullName()
                    FileDetails(2) = oneFIle.Length() / (1024 * 1024)
                    FileDetails(2) = FileDetails(2).Remove(5)
                    iTem = New ListViewItem(FileDetails)
                    ListView1.Items.Add(iTem)                        
                Next
            Catch ex As Exception

            End Try
        Next
    Catch ex As UnauthorizedAccessException

    End Try

他のヒント

しかできなPDFファイルをこのフォルダー:

System Volume Information フォルダを隠しシステムフォルダのシステムの復元ツールの使用に店舗その情報を復元す。(MSDN)

ので無視されます。

付与し、 GetFiles() できません無視するファイル/フォルダのないPInvokeへ FindFirstFile et al.いの検索有効である。

システムボリューム情報フォルダは、O / S保護されたフォルダーです。あなたは管理者のアクセス権を持っている場合でも、あなたはまだそれにアクセスすることはできません。あなたは、エクスプローラ自体からそれを試すことができます。 (保護されたオペレーティングシステムファイルを表示するオプションを有効にする必要があります。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top