Dateizugriff prüfen



  • Hallo Leute,

    folgende 2 Operationen müssen MultiThreaded funktionieren:

    1. Dateizugriff(Lesezugriff) unter User x prüfen
    2. Kopiere Datei unter User y

    Für den 2. Schritt würde ich Copy(source, dest) verwenden:
    Durch ein Test-Programm konnte ich feststellen, dass System.IO.File.Copy(source, dest) auch parallel funktioniert. D.h. ich kann parallel Copy(source, 1) und Copy(source, 2) aufrufen.

    Für den 1. Schritt (Lesezugriff prüfen) habe ich bisher System.IO.File.Open(path) verwendet. Leider laufe ich bei mehreren Threads in die Fehlermeldung:
    "Process cannot access the file 'xyz' because it is being used by another process."

    D.h. ich muss den Lesezugriff irgendwie anders prüfen?! (paralleles Copy funktioniert)

    Achja: Ich kann für den Lesezugriff NICHT auch ein Copy(source, dest) verwenden, da der User x auf dem System keine Schreibrechte haben darf.

    Nochmal kurz: Ich bräuchte eine Funktion mit der ich prüfen kann, ob der aktuelle User Lesezugriff auf eine Datei hat (ohne diese blockierend zu öffnen bzw. ohne das ein paralleles kopieren stören würde).

    Vielen Dank!!



  • Also den zweiten Fall hast du ja anscheinend gelöst. Du kannst eine Datei, zeitgleich mehrmals kopieren. Das wolltest du doch!?

    Und beim ersten willst du wohl prüfen, ob der Benutzer nur Leserecht hat? Nicht ob die Datei in Zugriff ist?
    Um Rechte abzufragen, solltest du mal GetAttributes probieren.


Anmelden zum Antworten