Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ini-File löschen (https://www.delphipraxis.net/97981-ini-file-loeschen.html)

WIng2005 20. Aug 2007 08:09


Ini-File löschen
 
Hallo,
viel gesucht und nichts gefunden:

Wie kann ich eine Ini-Datei am Stück löschen (also nicht leeren), die im Windows-Verzeichnis liegt.
Wie kann ich ( um mit deletfile) den Pfad ermitteln?

Besten Dank,
Steffen

messie 20. Aug 2007 08:19

Re: Ini-File löschen
 
Hallo,

such' mal nach der API-Funktion SHGetSpecialFolderLocation:

Delphi-Quellcode:
SHGetSpecialFolderLocation(0, SystemFolder, pidl)
Grüße, Messie

WIng2005 20. Aug 2007 08:44

Re: Ini-File löschen
 
Mmmh, dank dir, konnte jedoch nichts finden.
Habe den Ordner verschoben und nutze den Install-Ordner der Anwendung...Danke trotzdem

MFG
Steffen

marabu 20. Aug 2007 09:02

Re: Ini-File löschen
 
Hallo Steffen,

den Windows-Ordner kannst du mit GetWindowsDirectory() oder besser noch mit SHGetFolderPath() ermitteln, dann aber CSIDL_WINDOWS. Wie du dein Problem durch Verschieben eines Ordners lösen konntest ist mir schleierhaft.

Zum Speicherort deiner INI-Datei:

Microsoft PSDK GetWindowsDirectory
... Applications should store code in the Program Files folder and persistent data in the Application Data folder in the user's profile. ...


Grüße vom marabu

WIng2005 20. Aug 2007 09:09

Re: Ini-File löschen
 
Verschieben des Ordners will heißen, dass ich meinen Code abgeändert habe und den Ordner,
in dem die Ini angelegt wird spezifiziert habe (was ich vorher nicht hatte, daher das Windows-Verz.).
Habe die Ini jetzt in meinem Installationsverzeichnis des Programmes abgelegt.... das sollte doch unproblematisch sein, oder?

MFG
Steffen

sirius 20. Aug 2007 09:15

Re: Ini-File löschen
 
Das ist problematisch.
Es ist nicht angedacht, dass dein Programm im Ordner "Programme" oder "Program Files" schreiben darf. Ein ordentlich eingerichteter PC verhindert das. Und damit wird dein Programm unbrauchbar.

Deswegen
Zitat:

persistent data in the Application Data folder in the user's profile
z.B. -->"C:\Dokumente und Einstellungen\Mustermann\Anwendungsdaten\myProgram \..."
==> GetEnvironmentVariable('USERPROFILE')+'\Anwendungs daten\myProgram\...'

oder unter "gemeinsame Dateien"

messie 20. Aug 2007 09:18

Re: Ini-File löschen
 
Zitat:

Zitat von WIng2005
Habe die Ini jetzt in meinem Installationsverzeichnis des Programmes abgelegt.... das sollte doch unproblematisch sein, oder?

Es ist doch problematisch, speziell unter Vista wird ein Nicht-Administrator das Programm dann nicht mehr betreiben können, wenn es im \programs Verzeichnis steht. Dateiänderungen sind da nicht zulässig ohne Adminrechte.
Deshalb solltest die ini nach "Application Data" schieben. Und das findest Du mit SHGetSpecialFolderLocation. Luckie hat dazu die Funktion GetShellFolder entworfen, die finest Du dann auch bei der Suche (die klemmt bei mir heute).

SHGetSpecialFolderLocation
CSIDL
Grüße, Messie

WIng2005 20. Aug 2007 09:22

Re: Ini-File löschen
 
Schaue mir das mal an... Besten Dank

MFg
Steffen


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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