Nur die Dateien aus Ordner kopieren, wo man Rechte/Zugriff drauf hat

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Nur die Dateien aus Ordner kopieren, wo man Rechte/Zugriff drauf hat

    Hi.

    Ich kopiere mit xcopy Daten von einem Ordner in den anderen.

    Nun mein Problem:
    Im Documente Ordner sind Dateien, auf die ich keinen Zugriff habe.
    Wenn ich den Ordner kopieren möchte steht dort, dass ich kein zugriff darauf habe.
    Auch mit Adminrechtren geht es nicht.
    Dadurch das dann die Fehlermeldung kommt, stoppt das Programm.

    Das währe mein Ziel:
    Ordner wird versucht zu kopieren ---> Wenn Datei vorhanden ist, auf die ich keinen Zugriff habe, ----> dann diese nicht kopieren ----> sondern nur die anderen, auf die ich Zugriff habe.

    Hab vieles im Internet gelesen, aber leider keine Lösung zum Problem gefunden.

    Danke schonmal! :D

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „Jimpo“ ()

    Keine Ahnung was das mit VB.Net zu tun haben soll.
    Meiner (veralteten) Kenntnis nach muss Administrator die Objekte auf die er keinen Zugriff hat, erst einmal übernehmen (Besitzer werden) und kann sich dann die Zugriffsrechte selbst geben.
    Das solltest du erst einmal prüfen. Ob das legal ist hängt von deiner Umgebung ab, so habe ich mir jedenfalls meine eigenen Daten aus kaputten Benutzerkonten wieder retten können, also den Zugriff erzwingen.
    @Jimpo Wenn Du das ganze unter VB machst, kannst Du mit so einem Konstrukt feststellen, ob Du die erforderlichen Rechte hast:
    Spoiler anzeigen

    C#-Quellcode

    1. try
    2. {
    3. FileIOPermission fp = new FileIOPermission(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, AccessControlActions.Change, destdir);
    4. // Hier wird ggf. eine Exception geworfen
    5. fp.Demand();
    6. }
    7. catch (SecurityException ex)
    8. {
    9. Console.WriteLine(ex.Message);
    10. MessageBox.Show(
    11. "Das Zielverzeichnis hat nicht die erforderlichen Schreibrechte!\n" +
    12. "Bitte wählen Sie ein beschreibbares Zielverzeichnis aus.",
    13. "VB.NET - Fehler",
    14. MessageBoxButtons.OK,
    15. MessageBoxIcon.Error);
    16. return false;
    17. }
    Auch wenn das C' ist, kannst Du das ohne Hilfsmittel einfach nach VB übertragen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi @RodFromGermany
    Vielen dank für deine Antwort,

    könnte man es auch irgendwie machen, dass nur die Sachen kopiert werden wo man Rechte drauf hat?
    So wie ich den Code verstehe, wird nur die Fehlermeldung ausgegeben wenn was nicht kopier-fähiges drinnen ist.

    LG Jimpo

    Jimpo schrieb:

    So wie ich den Code verstehe, wird nur die Fehlermeldung ausgegeben wenn was nicht kopier-fähiges drinnen ist.
    Genau so ist es.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!