![]() |
Dateiattrebute ändern
Heya,
eine FindFirst Funktion von mir soll die gesuchten File die dann kopiert werden vorher noch in ihren Dateiattrebuten verändern. Bzw den Schreibschutz rausnehmen. so gehts nicht... wie dann?
Delphi-Quellcode:
ASearchRec.Attr := ASearchRec.Attr - faReadOnly;
Greetz Master_BB |
Re: Dateiattrebute ändern
Hallo Master_BB
Zitat:
Delphi-Quellcode:
bye
ASearchRec.Attr := ASearchRec.Attr xor faReadOnly;
Claus |
Re: Dateiattrebute ändern
ne geht nicht die kopierte file ist immernoch schreibgeschützt.
|
Re: Dateiattrebute ändern
Hallo Master_BB,
und jetzt das Ganze mit
Delphi-Quellcode:
ASearchRec.Attr := ASearchRec.Attr and faReadOnly;
bye Claus |
Re: Dateiattrebute ändern
nope geht auch mit and nicht
faReadOnly muß ja raus aus den Attrebuten würste nicht was ein and dort helfen sollte |
Re: Dateiattrebute ändern
Hallo Master_BB,
wie wärs denn mal mit einem "not" davor bye Claus |
Re: Dateiattrebute ändern
Mit and setzt du das Attribut, es soll aber weg. :zwinker:
Und mit "ASearchRec.Attr := ASearchRec.Attr and faReadOnly;" werden alle anderen Attribute zurückgesetzt, nur ein eventuell vorhandenes ReadOnly nicht. Ausserdem müssen die Attribute auch noch der Datei und nicht nur dem SearchRecord zugewiesen werden.
Code:
FileSetAttr([color=gray]Verzeichnis +[/color] ASearchRec.Name, ASearchRec.Attr and not faReadOnly);
|
Re: Dateiattrebute ändern
nope ging auch nicht @ Duffy
ich habs jetzt aber selbst über die hilfe herrausgefunden und so gelöst
Delphi-Quellcode:
Greetz
if (FileGetAttr(ADestPath + ASearchRec.Name) and faReadOnly) > 0
then FileSetAttr(ADestPath + ASearchRec.Name, ASearchRec.Attr xor faReadOnly); |
Re: Dateiattrebute ändern
Delphi-Quellcode:
damit maskierst du faReadOnly (d.h. alle bits auusser faReadOnly sind 1) und durch and uebernimmst du alle anderen bits so wie sie sind.
ASearchRec.Attr := ASearchRec.Attr and not faReadOnly;
So sollte es eigentlich gehen. |
Re: Dateiattrebute ändern
genau @w3seek
mit "and not" kann man das Bit direkt abschalten. mit "xor" wird das Bit umgeschaltet (0 > 1 oder 1 > 0), deshalb muß dabei vorher erst mit "and" geprüft werden, ob es auch wirkich au 1 steht, da es ja sonst aktiviert würde, wenn es auf 0 stünde. und wie gesagt: FileSetAttr wird benötigt, damit auch die Attribute der Datei geändert werden, aber das hast du ja endlich rausgefunden Also kurzgesagt ... siehe meinen vorherigen Beitrag ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 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