Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Attribut: Schreibschutz eines Ordners aufheben? (https://www.delphipraxis.net/77213-attribut-schreibschutz-eines-ordners-aufheben.html)

mlspider 16. Sep 2006 11:19


Attribut: Schreibschutz eines Ordners aufheben?
 
Ich versuche wie folgt den Schreibschutz eines Ordners aufzuheben, um diesen anschließend löschen zu können.

Delphi-Quellcode:
procedure TForm1.Timer4Timer(Sender: TObject);
begin
 Timer4.Enabled:=False;
 SetFileAttributes(PChar(Edit1.Text + '\Pics'), FILE_ATTRIBUTE_NORMAL);
 DelDir(Edit1.Text + '\Pics');
 ShowMessage('Beendet');
end;
Es tut sich leider nichts.

Daniel B 16. Sep 2006 11:50

Re: Attribut: Schreibschutz eines Ordners aufheben?
 
Hallo,

bei dir findet er den Ordner nicht, der Pfad ist wohl nicht ganz. Hier mal ein Beispiel wie es schon funktioniert und der auch gelöscht wird.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetFileAttributes(PChar('F:\Programmierung\TEST\Test'),
                    FILE_ATTRIBUTE_HIDDEN);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  RemoveDir(ExtractFileDir(ParamStr(0)) + '\Test')
end;
EDIT: Wobei du mit FILE_ATTRIBUTE_NORMAL die normalen Attribute wegbekommst, den Schreibschutz nicht.

EDIT2: Habs grad mal probiert, du musst den Schreibschutz nichtmal aufheben, du kannst direkt löschen mit dem RemoveDir, das ist dem wurst ob der Schreibgeschützt ist oder nicht.

mlspider 16. Sep 2006 12:03

Re: Attribut: Schreibschutz eines Ordners aufheben?
 
Das dürfte nicht der Fall sein. In Edit1 steht folgendes: F:\Programmierung\TEST. Es folgt der zu löschende Ordner: +'Test'.

Der Schreibschutz wird nicht aufgehoben. Selbst wenn ich den Schreibschutz nicht aufheben möchte, funktioniert das Löschen nicht.

PS: Der Ordner ist leer.

himitsu 16. Sep 2006 12:03

Re: Attribut: Schreibschutz eines Ordners aufheben?
 
Delphi-Quellcode:
SetFileAttributes(PChar(Edit1.Text + '\Pics'), FILE_ATTRIBUTE_DIRECTORY);

// oder

SetFileAttributes(PChar(Edit1.Text + '\Pics'),
  GetFileAttributes(PChar(Edit1.Text + '\Pics'), A) and not FILE_ATTRIBUTE_READONLY);
Außerdem was macht DelDir und ist das Verzeichnis auch leer?
(z.B. können mit RemoveDirectory nur leere Verzeichnisse gelöscht werden)

mlspider 16. Sep 2006 12:11

Re: Attribut: Schreibschutz eines Ordners aufheben?
 
Ich habe den Aufhänger gefunden. Da sich in diesem Ordner Bilddateien befunden haben, hat sich eine versteckte Thumbs eingenistet.


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