Name einer Datei im Netzlaufwerk ändern



  • Hallo,

    ich kämpfe gerade mit einem schwer zu greifenden Problem. Ich möchte eine Datei, die in einem Netzlaufwerk liegt, umbenennen. Diese Datei wird zuvor aus einem Dateiverwaltungssystem geladen und auf dem Netzlaufwerk abgespeichert. Ich kann nach dem Downloaden auch im TotalCommander sehen, dass die Datei im Verzeichnis vorhanden ist. Nun habe ich schon mehrere Möglichkeiten ausprobiert, um die gerade heruntergeladene Datei umzubenennen. Darunter habe ich die Funktionen "rename()", "MoveFile()" etc. schon probiert. Leider kommt es in dem meisten der Fälle zu einem Fehler, so dass die Datei nicht umbenannt wurde. Es ist auch keine genauer Fehlercode (GetLastError) greifbar, der dieses Phänomen erklären würde.

    Es muss damit zusammenhängen, dass es auf einem Netzlaufwerk passiert, denn wenn ich die Datei auf ein lokales Laufwerk speichern lasse, dann klappt alles wunderbar. Hat einer von euch ein paar Ideen, wie man das lösen könnte? Kann man z.B. herausfinden, ob auf der Datei noch Handles offen sind, die den Zugriff verweigern?

    Ich arbeite bei diesem Projekt mit LabWindows.

    Danke euch für die Hilfe!!

    P.S.: Wenn ich das Projekt debugge und ab einem Breakpoint durchsteppe, dann klappt es komischerweise in den meisten Fällen. Vll. hilft diese Information bei der Lösungssuche!!



  • Bei Dateien auf Netzwerklaufwerken kann deine aktuelle Instanz des Betriebssystems i.A. nicht feststellen, welche Aktionen gerade von anderen Betriebssysteminstanzen auf der Datei ablaufen.
    Wenn du dir darüber klar wirst, wirst du begreifen, dass hier zusätzliche clientübergreifende Mittel notwendig sind, um deine Anforderungen zu erfüllen.



  • Hallo Wutz,

    danke schon mal für dein Interesse an dem Problem 😉
    Klingt schon mal logisch, was du gesagt hast. Hättest du zu den

    clientübergreifende Mittel

    vll. ein paar konkrete Beispiele/Stichwörter, damit ich mich darüber mal schlau machen kann?

    Ich danke dir!!



  • Mit "clientübergreifenden Mitteln" ist natürlich ein Serversystem gemeint, wobei die "Clients" dann natürlich nicht mehr direkt auf so eine Datei (ändernd) zugreifen können, sondern nur indirekt über das Serversystem, mindestens müssen sich die Clients jedoch dort beim Server "live" registrieren. Samba wäre z.B. so ein System.
    Das ist auch der Grund, dass die C- bzw. OS-Dienste zum Filesharing/locking bei Netzwerkdateien versagen (müssen).
    Bei MS-Office Dokumenten auf Netzwerklaufwerken hast du vielleicht schon mal beobachtet, dass diese sich hierfür mit Dateiumbenennungen behelfen zur Kennzeichnung einer gerade in Arbeit befindlichen Datei, aus "Dokument.doc" wird dann z.B. "~$kument.doc". Das ist aber wie gesagt, MS-spezifisch.


Anmelden zum Antworten