0

Win7 64 ビット マシンの VB.net 2010 Express でカスタム クラスをリストするファイルを作成しようとしています。マシンとマシンが属するネットワークの両方で管理者権限を持つアカウントを使用して、VB.net Express をインストールしました。マシン上の任意のファイルにアクセスできる必要があり、Windows エクスプローラーからアクセスできます。「System.UnauthorizedAccessException」によってコールドストップされました。

マニフェストファイルを変更してみました。アカウントにはすでに完全な権限があるため、これは必要ありません。うまくいきませんでした。以下は、問題のあるコードの一部です。

マネージ コードを使用してドライブ上のファイルを読み取ることができるかどうか疑問に思い始めています。何年も前に書いた古代の Win32 API 呼び出しをカプセル化した VBA クラスに戻すことができますが、それはこの演習の目的に違反しています。任意の提案をいただければ幸いです。

Private Sub sLoadCatalog(ByVal strPath As String, ByVal intParentID As Integer)
    'Get the file list
    Dim strsearchPattern As String = "*"
    Dim fp As New FileIOPermission(FileIOPermissionAccess.PathDiscovery _
         Or FileIOPermissionAccess.Read, strPath)
    Try
        'fp.Demand()
        fp.Assert()
        Dim dirInfo As DirectoryInfo = New DirectoryInfo(strPath)
        Dim FileList() As FileInfo = dirInfo.GetFiles()

        If FileList.Length > 0 Then
            … Loop through the file list and do something exciting
        End If

        Dim dirFolder() As DirectoryInfo = dirInfo.GetDirectories
        If dirFolder.Length > 0 Then
            … Loop through the folder list and do something exciting 
            sLoadCatalog(strfolder, intLastID)
        Else
            Exit Sub
        End If
    Catch e As SecurityException
        MessageBox.Show("Security Cannot access folder " & strPath)
    Catch k As UnauthorizedAccessException
        MessageBox.Show("Unauthorized Cannot access folder " & strPath)
    End Try
4

0 に答える 0