Listfunctie: Acces Denied

  • Onderwerp starter Onderwerp starter JoZ1
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JoZ1

Terugkerende gebruiker
Lid geworden
17 dec 2010
Berichten
3.418
Beste Helpmij-forumleden,

Ik stuitte laatst op een probleem. Ik probeerde met VB.NET mappen en bestanden te listen. Ik kreeg de volgende foutmelding:

System.UnauthorizedAccessException: Access to the path 'C:\Users\username\Documents\My Pictures' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles(String searchPattern, SearchOption searchOption)
at System.IO.DirectoryInfo.GetFiles()
at Lister.Form1.C1()

Dit was op de computer van iemand anders (ik testte hem :p). Op mijn eigen computer werkt hij wel.

Dit is de code die ik gebruik:

Code:
     Dim a As New RichTextBox
               Dim FileSize As String = ""
                    Dim dir As New IO.DirectoryInfo(pad)
                    Dim array As IO.FileInfo() = dir.GetFiles()
                    Dim file As IO.FileInfo
                    Dim filename As String = ""
                    a.AppendText(vbNewLine + pad + vbNewLine + vbNewLine)
                    a.AppendText("Bestanden:" + vbNewLine)
'Bestanden:
                    For Each file In array
                        FileSize = (Math.Round(file.Length / 1024)).ToString()
                        filename = file.Name
                        Dim space As String = Nothing
                        If FileSize.Count = 1 Then
                            space = "    -   "
                        ElseIf FileSize.Count = 2 Then
                            space = "   -   "
                        ElseIf FileSize.Count = 3 Then
                            space = "  -   "
                        ElseIf FileSize.Count = 4 Then
                            space = "   - "
                        ElseIf FileSize.Count = 5 Then
                            space = "  -  "
                        Else
                            space = " -  "
                        End If
                        a.AppendText(FileSize & "kB" & space & filename + vbNewLine)
                    Next
                    If array.Length = 0 Then
                        a.AppendText("Er zijn geen bestanden aangetroffen in de geselecteerde map." + vbNewLine + vbNewLine)
                    End If
                    a.AppendText(vbNewLine + "Mappen:" + vbNewLine)
                    Dim map As New IO.DirectoryInfo(pad)
                    Dim Files As IO.FileInfo() = map.GetFiles("*.*")
                    Dim Dir2 As IO.DirectoryInfo() = map.GetDirectories("*.*")
                    Dim DirectoryName As IO.DirectoryInfo
'Mappen:
                    For Each DirectoryName In Dir2
                        a.AppendText(DirectoryName.FullName + vbNewLine)
                    Next
                    If Dir2.Length = 0 Then
                        a.AppendText("Er zijn geen mappen aangetroffen in de geselecteerde map." + vbNewLine + vbNewLine)
                    End If
                Next

Het werkt zo: Ik gebruik een nieuwe RichTextBox (a) om alle tekst in op te slaan. Alle bestanden en mappen zouden keurig op een rij in de RichTextBox moeten komen. Maar ik krijg de foutmelding 'Acces Denied'.

Weten jullie een oplossing voor dit (voor mij) ingewikkelde probleem?
 
Je kan proberen Visual Studio als Administrator uit te voeren. Anders het bestandje compileren en dan uitvoeren als Administrator?
 
Ja, dat had ik ook al geprobeerd :p. In ieder geval bedankt voor je reactie! :thumb:
 
Laatst bewerkt:
Ik heb gekeken maar niets gevonden. Wil je alsjeblieft uitleggen wat je bedoelt? :)
 
Laatst bewerkt:
Oeps iets verkeerd gelezen :o:o
Misschien is dit een optie?
160slqc.png
 
Lukte niet :(. Maar het is wel vreemd dat hij wel op mijn computer werkt, maar niet op die van iemand anders. Ik test hem namelijk op iemand anders zijn computer om te kijken of hij ook op andere computers werkt. Wat niet het geval is, helaas.
 
Laatst bewerkt:
Gewoon een voorbeeld, hoezo?
 
Laatst bewerkt:
Omdat je die foutmelding ook kan krijgen op het moment dat de map niet bestaat. Misschien zou je eerst kunnen checken of de directory wel bestaat...

If System.IO.Directory.Exists("path") Then

Else
MessageBox.Show("Map bestaat niet...")
End If
 
Ik weet zeker dat ik alle mappen die ik heb getest, ook echt bestaan.
 
Laatst bewerkt:
Ik heb je code even uitgeprobeerd en op meerdere computers getest, werkt allemaal :s Dus daar heb je ook niks aan. Ik denk toch dat je het in de oplossing van CaptainBri zal moeten zoeken. Wellicht dat UAC uitgezet moet worden?
 
Beste Mark199,

Sorry dat ik zo laat reageer :o, ik dacht dat ik een mailtje zou krijgen als er werd gereageerd: niet dus :shocked:. In ieder geval bedankt voor je reactie :thumb:, ik ga kijken of ik er iets mee kan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan