![]() |
Rechte zum verschieben einer Datei prüfen
Hallo
ich möchte herausfinden ob ich eine Datei verschieben kann, also in einen anderen Ordner. Wenn eine Datei in einen bestimmten Ordner kopiert wird und ich während diesem, diesen Ordner nach Dateien durchsuche mit meinem Programm, dann ist die Datei dort schon vorhanden obwohl sie noch beim kopieren ist. Dann lässt sie sich natürlich noch nicht weiter verschieben. Wie kann ich jetzt herausfinden ob ich die Datei verschieben kann ? Also ob sie ein anderes Programm in irgend einer Weise verwendet ? MfG |
Re: Rechte zum verschieben einer Datei prüfen
Bitte benutz die Suche.
|
Re: Rechte zum verschieben einer Datei prüfen
Ich bin deiner bitte jetzt nachgekommen. Ich hatte das zwar schon gemacht bevor ich hier gefragt habe aber doppelt ist meistens besser.
Aufjedenfall habe ich wieder nichts gefunden, also entweder habe ich einen komplett falschen Ansatz oder es gibt hier nichts dazu, was ich nicht glaube sonst würdest du mich wohl kaum darauf hinweisen. Kann mir pls jemand mal einen entsprechenden Beitrag nennen, pls ? MfG |
Re: Rechte zum verschieben einer Datei prüfen
Guck mal nach Datei exklusiv geöffnet
|
Re: Rechte zum verschieben einer Datei prüfen
|
Re: Rechte zum verschieben einer Datei prüfen
Das beste ist einfach Versuchen und bei Mißerfolgt den letzten Windows-Fehlercode prüfen/Ausgeben. Unter Windows kann neben NTFS-Rechte, Lanmanager-Rechte, Policy-Rechte und dem neuer UAC-Vereinfachung bei Vista auch noch (bei .NET) die .NET-Rechtevergabe dir einen Strich durch die Rechnung machen. Ebenfalls können auch noch Plattenplatzprobleme (Verzeichnis könnte bei NTFS ja von anderer Partition kommen) sowie eine wild gewordener Virenscanner das Vorhaben vereiteln.
|
Re: Rechte zum verschieben einer Datei prüfen
Danke ich habe jetzt was gefunden. Ich hatte vorhin scho ähnliche Sachen gesehen gehabt, aber irgendwie nicht das richtige gefunden.
Delphi-Quellcode:
Mit diesem geht das jetzt, aber das funktioniert ja über eine Exeption. Kann ich dem Debugger sagen, dass er nur genau an dieser Stelle keine Exception bringen soll, also nur nicht anzeigen ?function IsFileOpen(const FileName: string): Boolean; var Stream: TFileStream; begin Result := false; if not FileExists(FileName) then exit; try Stream := TFileStream.Create(FileName,fmOpenRead or fmShareExclusive); except Result := true; exit; end; Stream.Free; end; |
Re: Rechte zum verschieben einer Datei prüfen
Durch das "except" wird die Exception nicht angezeigt. Starte das Programm aus dem Explorer heraus und du wirst nichts sehen. In Delphi kannst du in den Debugger-Optionen einstellen, dass Delphi bei Sprachexceptions nicht stoppen soll, dann geht's auch aus der IDE heraus.
|
Re: Rechte zum verschieben einer Datei prüfen
Durch das except wird kein Fehler angezeigt, nur eine Exception ? Also wenn ich das Programm ohne Debugger starte eben nichts ?
Wenn ich in Delphi einstelle das er die Exception nicht anzeigen soll dann zeigt es ja gar keine Exception mehr an. Ich möchte aber nur genau in dieser Stelle dass der Debugger hier nicht anhält oder was anzeigt. Das geht nicht ? |
Re: Rechte zum verschieben einer Datei prüfen
Also durch try - except kann man die Exception unterdrücken, die im try-Abschnitt auftritt. Mit Compilerschaltern kannst das vielleicht auch für bestimmte Abschnitte ausblenden lassen, aber da bin ich überfragt, sorry.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz