Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriff auf Datei gescheitert, von anderem Prozess verwendet (https://www.delphipraxis.net/126302-zugriff-auf-datei-gescheitert-von-anderem-prozess-verwendet.html)

DeddyH 22. Dez 2008 13:16

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
MSDN-Library durchsuchenSHGetFolderPath mit CSIDL_APPDATA ist in meinen Augen nicht soooo kompliziert ;)

[edit]
Zitat:

Zitat von Uwe Raabe
Bemerkenswert ist aber, daß im Get_LogDir ein File geöffnet wird (warum?) und dieses anscheinen auch bleibt. Das hat allerdings zur Folge, daß die Datei gesperrt ist und somit ein nachfolgendes SaveToFile auf den gleichen Dateinamen schiefgehen muss.

Deshalb meinte ich ja, da fehlt ein CloseFile. Wobei man sich wirklich fragt, wozu die Datei vorher angelegt wird :gruebel:[/edit]

SirThornberry 22. Dez 2008 13:59

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Zitat:

Zitat von Meflin
Zitat:

Zitat von khh
Das ist unter Vista etwas kompliziert, oder ?

Ganz im Gegenteil. Wenn du mit mangelnden Rechten in Vista ins Programm-Verzeichnis schreiben willst, landet das sogar ganz automatisch im Roaming-Ordner deines User-Verzeichnisses :mrgreen:

Was passiert dann wenn man nachträglich die nötigen Rechte bekommt? wird dann zukünftig weiterhin diese genutzt oder wird eine neue angelegt?

Christian Seehase 22. Dez 2008 14:04

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Moin,

was mir noch aufgefallen ist:
Du prüfst zwar den vollen Pfad, benutzt dann aber zum Speichern einen relativen (./logs).
Das kann auch schiefgehen.

Berlinermauer 22. Dez 2008 14:55

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Also ich wollte damit bezwecken, dass der Text nicht überschrieben sondern erweitert wird.

DeddyH 22. Dez 2008 14:58

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Dann fallen mir spontan 2 Möglichkeiten ein: eine Stringlist erzeugen, alten Inhalt hineinladen und mit Addstrings anfügen oder Datei nicht mit Rewrite, sondern ggf. mit Append öffnen.

Meflin 22. Dez 2008 15:00

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Zitat:

Zitat von SirThornberry
Was passiert dann wenn man nachträglich die nötigen Rechte bekommt? wird dann zukünftig weiterhin diese genutzt oder wird eine neue angelegt?

Ich habe erlichgesagt keine Ahnung. Normalerweise müsste eine neue angelegt werden - die Frage wäre dann, ob die alte dabei berücksichtigt wird oder nicht :gruebel:

Ergänzend sei gesagt: das genaue Verzeichnis ist nicht Roaming, sondern Local\VirtualStore und das funktioniert auch "nur" bei Anwendungen, die kein Vista-Manifest haben (oder allen die im Kompatibilitätsmoduis ausgeführt werden) :)

Berlinermauer 23. Dez 2008 19:00

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
naja mit Append scheint auch nicht zu funktionieren.

Ich glaube aber es liegt daran dass ich bei jeder neuempfangenen ChatNachricht wieder den ganzen log reinschreib.

weiß jemand wie ich es besser machen könnte?

DeddyH 23. Dez 2008 19:02

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Zitat:

Zitat von Berlinermauer
naja mit Append scheint auch nicht zu funktionieren.

:glaskugel: :?:

Berlinermauer 23. Dez 2008 19:28

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
wenn ich statt "ReWrite", "Append" eingebe funktioniert es trotzdem noch nicht

DeddyH 23. Dez 2008 19:39

Re: Zugriff auf Datei gescheitert, von anderem Prozess verwe
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const sDateiname = 'C:\Test.txt'; //nur zum Testen
var F: TextFile;
begin
  AssignFile(F,sDateiname);
  {$I-}
  if FileExists(sDateiname) then
    Append(F)
  else
    Rewrite(F);
  {$I+}
  if IOResult = 0 then
    begin
      writeln(F,'Eine weitere Zeile');
      CloseFile(F);
    end
  else
    ShowMessage(Format('IOResult = %d',[IOResult]));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Seite 2 von 2     12   

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