Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Rechte zum verschieben einer Datei prüfen (https://www.delphipraxis.net/94564-rechte-zum-verschieben-einer-datei-pruefen.html)

ebber 23. Jun 2007 12:21


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

Luckie 23. Jun 2007 16:02

Re: Rechte zum verschieben einer Datei prüfen
 
Bitte benutz die Suche.

ebber 23. Jun 2007 16:37

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

Luckie 23. Jun 2007 16:40

Re: Rechte zum verschieben einer Datei prüfen
 
Guck mal nach Datei exklusiv geöffnet

Dezipaitor 23. Jun 2007 16:47

Re: Rechte zum verschieben einer Datei prüfen
 
Wie gewünscht:

1
2

Bernhard Geyer 23. Jun 2007 16:49

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.

ebber 23. Jun 2007 16:56

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:

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;
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 ?

Matze 23. Jun 2007 17:08

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.

ebber 23. Jun 2007 17:15

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 ?

Matze 23. Jun 2007 17:25

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 18:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz