tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
806
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von NSR
    NSR NSR ist offline Mitglied Silber
    Registriert seit
    Nov 2008
    Beiträge
    94
    Hi Leute,

    ich habe das Problem, dass das Programm mit Directory.GetFiles("Path", "*", SearchOption.AllDirectories) unter Windows 7 auf den Ordner "C:\Dokumente und Einstellungen\" zugreifen möchte der allerdings ja nicht wirklich existiert und der dann den Fehler
    Der Zugriff auf den Pfad "C:\Dokumente und Einstellungen\" wurde verweigert.
    ausspuckt.

    Ich habe schon im Manifest eingestellt, dass das Programm als Admin gestartet werden muss, allerding nützt das nichts. Des weiteren habe ich Probiert über die Where() Lambda Expression nach den Datei-Attributen, welche der Ordner hat auszusortieren, das hat aber auch nicht geholfen.

    Hoffe Ihr versteht mein Problem.
    Grüße Nico
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    Hi

    das liegt wahrscheinlich daran, dass es das Verzeichnis "Dokumente und Einstellungen" unter Vista/7 gar nicht gibt.

    Zu XP-Zeiten war der Name wirklich noch so, ab Vista heißt das Verzeichnis in Wirklichkeit aber Users, und wird nur im Explorer mit dem alten Namen angezeigt.

    Macht es nur unnötig kompliziert, ist aber nun leider so.

    Gruß
     

  3. #3
    Avatar von NSR
    NSR NSR ist offline Mitglied Silber
    Registriert seit
    Nov 2008
    Beiträge
    94
    Hi

    nun gut dass würde ja die sache mit C:\\ nicht wirklich erklären. Denn man geht doch eigentlich auf die aktuelle Ordnerstruktur. Und auserdem ist dies nicht nur bei C:\\ so, sondern auch bei einer externen Festplatte, die kein C:\\ enthält. Da sagt der mir dann sowas wie "Der Ordner System Information Service" oder so ähnlich.

    Naja ich habs jetzt auf ne andere art gelöst. Für die dies Interresiert.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    private void GetOrdner(string pfad)
            {
                try
                {
                    DirectoryInfo dirInfo = new DirectoryInfo(pfad);
                    DirectoryInfo[] dInfo = dirInfo.GetDirectories();
     
                    if (dirInfo.Name == "$RECYCLE.BIN")
                    { return; }
     
                    Ordner.Add(dirInfo.FullName);
     
     
                    for (int i = 0; i < dInfo.Count(); i++)
                    {
                        try
                        {
                            GetOrdner(dInfo[i].FullName);
                        }
                        catch { }
                    }
                }
                catch { }
            }
     
            private void GetFiles()
            {
                DirectoryInfo di;
     
                for (int i = 0; i < Ordner.Count(); i++)
                {
                    try
                    {
                        di = new DirectoryInfo(Ordner[i]);
     
                        FileInfo[] fi = di.GetFiles();
     
                        for (int j = 0; j < fi.Count(); j++)
                        { Dateien.Add(fi[j].FullName + " | " + ((((fi[j].Length / 1024) / 1024) <= 0) ? (fi[j].Length / 1024).ToString() + " KB" : ((fi[j].Length / 1024) / 1024).ToString() + " MB")); }
                    }
                    catch
                    { }
                }
            }

    zuerst werden alle Ordner, bei denen KEIN Fehler auftritt in einer Liste gespeichert. Da jede Festplatte diesen Resycle.Bin Order hatte lass ich diesen einfach überspringen, da der mich nicht interresiert. Danach wird die Ordner Liste durchgegangen und alle Dateien unter den Ordnern werden ausgelesen.

    Vielleicht findet ja noch jemand eine Erklärung für mein ursprüngliches Problem. Würde mich sehr Interresieren.

    Grüße,
    Nico
     

Ähnliche Themen

  1. c# - Directory.GetFiles() kein Zugriff => überspringen
    Von Samillon31112 im Forum .NET Windows Forms
    Antworten: 6
    Letzter Beitrag: 30.12.09, 13:17
  2. Directory.GetFiles(path,SearchPattern) !?
    Von axelfxxx im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 02.03.09, 14:55
  3. C# - Getfiles im selben Directory
    Von Alexander12 im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 23.10.05, 14:27
  4. Antworten: 5
    Letzter Beitrag: 11.05.05, 19:12
  5. GS-Auftrag und BDE 32 Fehler 41 directory in use by earlier version
    Von Chipnik im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 27.04.05, 20:59