Seite 2 von 3
					
				
				Verfasst: 18.04.2006 17:10
				von AND51
				Datei geöffnet lssen schützt nur vor dem löschen der Datei, diese kann aber weiterhin durch fremden Zugriff verändert werden, was ich zu verhindern nicht vermag.
			 
			
					
				
				Verfasst: 18.04.2006 17:11
				von Karl
				Ich glaube so:
Solange die Datei gebraucht wird, darf sie weder geöffnet oder beschrieben werden. Der Zugriff wird dann verweigert.
			 
			
					
				
				Verfasst: 18.04.2006 17:18
				von uweb
				Nun glaube ich doch, daß mit meiner geistigen Fitness alles in Ordnung ist.
 
 
Vermutlich haben wir unterschiedliche Betriebssysteme.
Bei mir wird gesperrt.
Während mein Beispiel läuft kann das gleiche Programm oder z.B. Wordpad die Datei nicht öffnen.
Ich arbeite mit Win2000 SP4.
 
			 
			
					
				
				Verfasst: 18.04.2006 17:58
				von Karl
				Also bei mir kann ich problemlos öffnen. (XP SP2)
			 
			
					
				
				Verfasst: 19.04.2006 00:52
				von AND51
				Eben,. und deshalb wollte ich wissen, ob/wie ich diese Funktion aus CGI/Perl "importieren" kann, die mir ja ermöglicht, eine Datei zu sperren, gegen Löschen und beschreiben. Das muss auf WIndows gehen, da es ja auch Perl-Interpreter für WIndows gibt.
			 
			
					
				Das mit dem Sperren von Dateien ist nicht so einfach...
				Verfasst: 19.04.2006 04:20
				von aspicza
				Hallo!
Dei Funktion flock() in Perl oder PHP funktioniert auch nur, wenn der Webserver auf bestimmten Betriebsystemen / Dateisystemen läuft. flock() in PHP auf Windows Rechnern funktioniert zum Beispiel gar nicht!
Ein EXKLUSIVER Zugriff auf eine Datei ist zwar prinzipiell möglich, jedoch muss die verwendete Routine für jedes Betriebsystem / Dateisystem eigens programmiert werden bzw. vorhanden sein. Eine Routine für ALLE gibt es nicht.
Es gibt nur zwei Möglichkeiten: Entweder - wie schon einige Antworten vorher erwähnt - benutzt man die gängige Methode einen Dummy zu erstellen (z.B. leere Datei oder Eintrag in eine Datenbank), um damit zu signalisieren, dass eine bestimmte Datei exklusiv geöffnet wurde 
oder
man programmiert sich passend zu dem Betriebsystem / Dateisystem eigene Routinen, die aber seeeeeeehr hardwarenah programmiert werden und tief in den Kern eines Systems gesetzt werden müssen.
Bei der ersten Möglichkeit besteht der Nachteil, dass Drittproramme diesen "Schutz" einfach umgehen können und bei der zweiten Möglichkeit ist meistens der Aufwand zu hoch.
SG
Arndt
			 
			
					
				
				Verfasst: 19.04.2006 07:26
				von Sylvia
				@And51:
Um deinen exklusiven Zugriff zu wahren, kannst du ja für diese 
kurze Zeit die Datei UMBENENNEN um sie für andere Programme 
unsichtbar zu machen.
Ach herje, jetzt habe ich ja schon wieder etwas gepostet. Egal...
wenn ich damit jemandem helfen konnte. Und weg.
			 
			
					
				
				Verfasst: 19.04.2006 08:09
				von Karl
				@Sylvia:
Man könnte es als eine Schwäche auffassen.
Gruß Karl
			 
			
					
				
				Verfasst: 19.04.2006 13:05
				von AND51
				Sylvia hat geschrieben:Ach herje, jetzt habe ich ja schon wieder etwas gepostet.
Karl hat geschrieben:Man könnte es als eine Schwäche auffassen. 
Bitte keine Sticheleien! Ich habe keine Lust, dass alles wieder von vorn losgeht und außerdem ist es doch ganz nett, wenn Sylcia wieder mal was postet.
Ich denke, ich werde dann die Datei einfach umbenennen! Danke für eure Hilfe! 

 
			 
			
					
				
				Verfasst: 19.04.2006 17:49
				von mk-soft
				Habe mal in der MSDN gesucht:
Code: Alles auswählen
; BOOL LockFile(
;   HANDLE hFile,
;   DWORD dwFileOffsetLow,
;   DWORD dwFileOffsetHigh,
;   DWORD nNumberOfBytesToLockLow,
;   DWORD nNumberOfBytesToLockHigh
; );
; 
; 
; BOOL UnlockFile(
;   HANDLE hFile,
;   DWORD dwFileOffsetLow,
;   DWORD dwFileOffsetHigh,
;   DWORD nNumberOfBytesToUnlockLow,
;   DWORD nNumberOfBytesToUnlockHigh
; );
; 
File.s = OpenFileRequester("Sperren","","", 0)
If File
  hFile = OpenFile(0, File)
  If hFile
    size = FileSize(File)
    result = LockFile_(hFile, 0, 0, FileSize(File),0)
  Else
    End
  EndIf
Else
  End
EndIf
InputRequester("Wait", "","")
Vielleicht könnt ihr damit was anfangen
FF 
