AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei geöffnet?

Ein Thema von Stillmatic · begonnen am 5. Jun 2007 · letzter Beitrag vom 6. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#1

Datei geöffnet?

  Alt 5. Jun 2007, 17:13
Wie kann man herausfinden ob eine Datei geöffnet ist oder nicht??
If TFileRec(Datei).Mode <> fmClose then Mit dieser Abfrage klappt es bei mir nicht da, TFileRec(Datei) eine Zahl als Result liefert und nicht ein Open oder Close!!

Kann mir da einer auf die Sprünge helfen??
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#2

Re: Datei geöffnet?

  Alt 5. Jun 2007, 17:47
Das hier hat bei mir funktioniert:
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Datei geöffnet?

  Alt 5. Jun 2007, 20:45
In der Delphi Hilfe steht:

Delphi-Quellcode:
type TFileRec = packed record

    Handle: Integer;
    Mode: Word; //<----
    Flags: Word;
    case Byte of
Wenn man dann weiter schaut, dann kommt man hierhin:


Zitat:
File mode constants are used to open and close disk files.

Unit
System

Category
file management routines

const fmClosed = $D7B0; // closed file
const fmInput = $D7B1; // reset file (TTextRec)
const fmOutput = $D7B2; // rewritten file (TTextRec)
const fmInOut = $D7B3; // reset or rewritten file (TFileRec)
const fmCRLF = $8 // DOS-style EoL and EoF markers (TTextRec)
const fmMask = $D7B3; // mask out fmCRLF flag (TTextRec)

Description

Use the file mode constants when opening and closing disk files.
The Mode field of TFileRec and TTextRec will contain one of these values.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datei geöffnet?

  Alt 5. Jun 2007, 22:45
@DeddyH: Das funktioniert aber nur, wenn der andere Prozess die Datei exklusiv geöffnet hat. Ansonsten müsste man wohl einen Treiber programmieren, um zu gucken welche Prozesse ein Handle auf die Datei haben.

@Stillmatic: Wenn es nur um dein Programm geht, dann merk dir doch einfach, ob du sie schon geöffnet hast. Das erfordert natürlcih, dass du sie auch immer wieder konsequent schlieest.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Datei geöffnet?

  Alt 6. Jun 2007, 09:34
Hier noch ein Link auf einen Thread zum gleichen Thema: ermitteln ob eine filevariable geoeffnet ist

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Datei geöffnet?

  Alt 6. Jun 2007, 09:51
Zitat von Luckie:
@DeddyH: Das funktioniert aber nur, wenn der andere Prozess die Datei exklusiv geöffnet hat.
Falsch. Er versucht ja die Datei exlusiv zu öffnen. Wenn sie bereits geöffnet ist (egal ob exclusiv oder nicht) kann sie nicht exclusiv geöffnet werden und es wird die exception geworfen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Datei geöffnet?

  Alt 6. Jun 2007, 10:00
Hallo,

ich ging davon aus, dass Stillmatic beim Verlassen seines Programms noch eventuell geöffnete Dateien schließen möchte, damit gepufferte Inhalte korrekt auf die Datenträger geschrieben werden. Wenn es um etwas anderes geht, dann ignoriert meinen Beitrag #5 bitte.

Verlegene Grüße
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#8

Re: Datei geöffnet?

  Alt 6. Jun 2007, 10:01
Zitat von SirThornberry:
Er versucht ja die Datei exlusiv zu öffnen. Wenn sie bereits geöffnet ist (egal ob exclusiv oder nicht) kann sie nicht exclusiv geöffnet werden und es wird die exception geworfen.
So war mein Gedankengang
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#9

Re: Datei geöffnet?

  Alt 6. Jun 2007, 13:38
eine Lösung wurde zwar schon genannt,

aber wenn du mal nach Hier im Forum suchenDatei geöffnet gesucht hättest, dann wären dir eventuell mehrere Beiträge dazu aufgefallen ... z.B. auch diese Beiden:
http://www.delphipraxis.net/internal...tei+ge%F6ffnet (könnte eventuell interessant sein)
http://www.delphipraxis.net/internal...tei+ge%F6ffnet

[add]
@#10+#11: also, wenn die Überschrift sogar schon genug gute Lösungen liefert, dann darf man dat wohl mal bemängeln
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Datei geöffnet?

  Alt 6. Jun 2007, 13:42
Zitat von himitsu:
aber wenn du mal nach Hier im Forum suchenDatei geöffnet gesucht hättest
Was für ein Frevel auf die Suchfunktion zu verweisen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
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