![]() |
undefinierbarer Fehler im Programmablauf
Hallo,
in einer DLL erzeuge ich ein XML-File, welches im Benutzer-Temp-Verzeichnis abgelegt wird. Hierbei kommt es bei einem einzigen Nutzer der DLL zu folgender Fehlermeldung aus Windows heraus: "Datei "XY" kann nicht erstellt werden. Der Vorgang ist bei einer Datei mit einem geöffneten Bereich, der einem Benutzer zugeordnet ist, nicht anwendbar." Die Datei wird in der DLL wie folgt erstellt:
Delphi-Quellcode:
Hat jemand eine Idee, wo ich ansetzen könnte?
CreateGUID(iGUID);
fn := iGUID.ToString + '.xml'; tempPath := TPath.GetTempPath; XMLFileName := tempPath + fn; CreateXML(XMLFileName); Bei hunderten anderen Nutzern gibt es dieses Problem nicht... Ciao Stefan |
AW: undefinierbarer Fehler im Programmablauf
Falscher (Temp-)Pfad? Fehlerhaft GUID?
|
AW: undefinierbarer Fehler im Programmablauf
Bei solchen Sachen lass ich immer (probeweise) mal den Virenscanner deaktivieren.
|
AW: undefinierbarer Fehler im Programmablauf
nein, Pfad ist korrekt und GUID wird auch eineindeutig erzeugt...
Mir ist aber beim Debuggen noch was aufgefallen, ich lade die Datei in eine TStringlist, korrigiere die erste Zeile und schreibe zurück:
Delphi-Quellcode:
Wäre es denkbar, das da das Problem steckt?
// Abspeichern der XML-Datei (Pfad/Dateiname mit GUID in fn)
Xml.SaveToFile(fn); Xml.Active := false; Xml := Nil; // in Stringlist laden Korr := Tstringlist.Create; Korr.LoadFromFile(fn); // erste Zeile Codierung ersetzen Korr[0] := '<?xml version="1.0" encoding="UTF-8"?>'; Korr.SaveToFile(fn); Korr.Free; Leider kann ich den Fehler bei mir nicht reproduzieren... Ciao Stefan |
AW: undefinierbarer Fehler im Programmablauf
Zitat:
Ciao Stefan |
AW: undefinierbarer Fehler im Programmablauf
Zitat:
|
AW: undefinierbarer Fehler im Programmablauf
Einfach mal fie folgenden Maßnahmen probieren:
1. Check mal, ob für das Verzeichnis die Windows Search Indizierung aktiv ist - in dem Fall einfach mal für das Verzeichnis deaktivieren. 2. Probeweise den Schreibcache von Windows abschalten. 3. Für das Verzeichnis im Virenscanner eine Ausnahme anlegen. |
AW: undefinierbarer Fehler im Programmablauf
Statt Xml.SaveToFile die XML in einen String oder MemoryStream speichern, an die StringList übergeben und dann erst in die Datei. :stupid:
Und beim LoadFromFile/SaveToFile der StringList eventuell das Encoding mit angeben. |
AW: undefinierbarer Fehler im Programmablauf
Danke, auf den Zwischenschritt mit dem Stream hätte ich auch kommen können...
Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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