# Kopieren von Dateien die von einem anderen Programm verwendet werden?



## Chrno (2. Feb 2010)

Hi,

gibt es die Möglichkeit Dateien zu kopieren die von einem anderen Programm zurzeit verwendet werden?
Programmiere gerade ein Synchronisationsprogramm und es wäre sehr Praktisch wenn ich ALLE Dateien ohne Verlust kopieren könnte.
Oder wenn das nicht geht, kann ich irgendwie herausfinden welche ich nicht kopieren kann?

Chrno


----------



## Gast2 (2. Feb 2010)

Chrno hat gesagt.:


> gibt es die Möglichkeit Dateien zu kopieren die von einem anderen Programm zurzeit verwendet werden?


ich weis nicht wie es unter Linux geht ... unter Windows kommt es darauf an wie das andere Programm die Dateien geöffnet hat ... also mit Exlusivrechten oder Zugriff für alle



> Oder wenn das nicht geht, kann ich irgendwie herausfinden welche ich nicht kopieren kann?


Datei zum Lesen öffnen ... wenn eine Exception kommt, dann kannst Du die halt nicht öffnen

hand, mogel


----------



## Chrno (2. Feb 2010)

Für windows ich glaube exclusiv zugriff. Kennst du die meldung nicht? (siehe anhang)

Ich versuche jede Datei zu Kopieren aber eine Exception wird nicht geworfen.


----------



## hemeroc (2. Feb 2010)

Exklusive FileLocks werden vom Betriebssystem verwaltet also kurz und gut nein, darauf hast du keinen Einfluss. Das einzige was du machen kannst, ist den File beobachten und es immer wieder versuchen. Allerdings gibt es keine Garantie dafür das der File jemals freigegeben wird solange dein Programm läuft.

//Edit: das gilt auf jedem mit bekannten Betriebssystem.


----------



## FArt (3. Feb 2010)

Selbst wenn ein Filesystem konkurrierende Zugriffe zulässt, ist nicht sichergestellt, dass deine Kopie konsistent ist... 

Viele Filesysteme unterstützen Locking auf Fileebene ( in Java geht das mit FileLocks in java.nio), das müssen aber alle beteiligten auch verwenden...


----------



## Chrno (3. Feb 2010)

Ok ich probiere ma die Sachen aus.
Es gibt ja auch die metode 
	
	
	
	





```
File.readable();
```
Vieleicht kann ich so eine Liste ausgeben welche Dateien nicht kopiert wurden...

edit: Verdammt es gibt nur 
	
	
	
	





```
File.setReadable();
```
 aber das bringt mir auch nichts.
       Kann ich irgendwie sehen ob ich die Dateien kopieren kann?


----------



## FArt (3. Feb 2010)

> Kann ich irgendwie sehen ob ich die Dateien kopieren kann?


Einfach lesen, dann merkst du es schon....


----------



## Chrno (3. Feb 2010)

Nein ich merk es nicht da kein Fehler ausgegeben wird.
Er kopiert alle Dateien ohne Fehler auszugeben. 
natürlich die gesperrten nicht.


----------

