Forum: PC-Programmierung Exklusiven Zugriff auf Dateien sicherstellen


von Michael K. (ampfing)


Lesenswert?

Hallo zusammen,

ich stehe derzeit vor dem Problem eine Batch-Datei Multi-User fähig zu 
gestalten.
Innerhalb der Batch werden einige Dateien von einem Serververzeichnis 
auf die lokale Festplatte kopiert und anschließend dort weiter 
gearbeitet.
Gleichzeitig kann es aber vorkommen, dass ein anderer Benutzer - nicht 
mit Hilfe der Batch-Datei - diese Dateien editiert.

Hierbei kann ich mir drei Szenarien vorstellen:
1. Benutzer 1 speichert die Datei, nachdem er fertig ist kopiert 
Benutzer 2 sie und arbeitet mit dieser Version
2. Benutzer 1 editiert die Datei, speichert sie aber noch nicht. 
Benutzer 2 kopiert die Datei und arbeitet mit dieser Version
3. Benutzer 1 editiert und speichert die Datei, während dem 
Speichervorgang kopiert Benutzer 2 die Datei

Die Fälle 1 und 2 stellen kein Problem dar. In Fall 2 arbeitet Benutzer 
2 zwar mit einer alten Version der Datei, da er diese aber weder 
editiert noch zurückkopiert stellt das kein Problem dar.

Das Problem ist Fall 3. Hier ist nicht vorherzusehen was Benutzer 2 als 
Kopie bekommt. Aus diesem Grund versuche ich mir ein Schema zu überlegen 
mit dem sichergestellt werden kann, dass Benutzer 2 entweder eine 
Fehlermeldung angezeigt bekommt, oder die alte Version der Datei kopiert 
wird.

Eine Möglichkeit, die mir eingefallen ist wäre, dass vor dem Kopieren 
(ausgelöst durch Benutzer 2) ein Schreibschutz auf die Datei gesetzt 
wird. Damit wäre ausgeschlossen, dass Benutzer 1 in dem Moment, wo die 
Datei kopiert wird die Datei speichert. Allerdings deckt das immer noch 
nicht den Fall ab, dass Benutzer 1 zuerst auf speichern drückt und 
Benutzer 2 kurz darauf die Kopie anlegt (bzw. versucht den Schreibschutz 
zu setzen).
Bzw. kann mir jemand verlässlich sagen, wie sich eine Batch-Datei (unter 
Windows 7) verhält, wenn ich versuche auf eine Datei, die gerade 
gespeichert wird einen Schreibschutz zu setzen (mittels attrib +r)? Ich 
habe auch schon versucht das Ganze bewusst zu provozieren um es 
auszuprobieren, aber wie Murphy es so will gelingt es mir nicht - und im 
produktiven Einsatz passiert es dann bestimmt ständig.

Danke für jede Hilfe schonmal vorab und viele Grüße

von Michael K. (ampfing)


Lesenswert?

Hat keiner eine Idee, wie ich mein Skript Multi-User fähig bekomme? Ich 
kann doch weder der Einzige noch der Erste sein der vor diesem Problem 
steht, oder?

von lrlr (Gast)


Lesenswert?

>Gleichzeitig kann es aber vorkommen, dass ein anderer Benutzer - nicht
>mit Hilfe der Batch-Datei - diese Dateien editiert.

dein Skript soll "Multiuser fähig" sein, obwohl es das OHNE skript schon 
nicht ist...

komische Aufgabenstellung ;-)


(schau dir mal SVN oder GIT an...)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Du kannst das mit so was versuchen:
http://www.jensscheffler.de/filelocker
Ansosnten halt gleich ein "richtiges" Programm anstelle eines 
Batch-Files..

von Michael K. (ampfing)


Lesenswert?

Hi Läubi,

danke für den Tipp, das schaut schonmal gut aus.
Bisher - als Single-User-Programm - war das Batch genau richtig - im 
Endeffekt werden nur diverse Kommandos nacheinander ausgeführt.
Für mehrere Benutzer kommen zusätzliche Probleme dazu, die aber 
natürlich mit möglichst wenig Aufwand umschifft werden sollen.

Viele Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.