![]() |
Vista setzt als Datei-Attribut ein Bit13 ???
Hi,
eines meiner WinXP-Programme sucht mittels der FindFirst/FindNext-Funktionen Dateien, welche im SearchRecord-Attribut nur die Bits für faReadOnly und faArchive gesetzt haben dürfen. Bei einem Programm-Transfer auf Vista klappte das Prog jetzt allerdings nicht mehr. Auf der Suche nach der Ursache entdeckte ich dann bei allen Dateien dieses betroffenen Ordners (C:\ProgramData\XY) dieses ominöse Bit13 im SearchRecord-Attribut, ...welches man übrigens auch häufig sonstnoch überall in C:\ProgramData\... antreffen kann. Kennt das event. jemand? Was für eine Information beinhaltet es? Thx im Voraus MfG, ... PS. Ein Bit7 als Datei-Attribut (?) ist mir da übrigens eben auch gerade noch begegnet (in C:\Programme\Canon\...). ...und eben auch noch ein Bit10 in (nur) C: Scheint so, dass diese höheren Bits in Vista insgesamt irgendwie genutzt werden? |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Ich kenne die zwar nicht, aber kannst du nicht einfach sämtliche bekannten Bits ausmaskieren und dann erst deinen Vergleich durchführen? Dann bist du auch für die Zukunft gewappnet, egal welche Bedeutung dann weitere Bits bekommen.
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Zeig mal deine Funktion.
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
@OregonGhost, ja, wie ich das Phänomen in den Griff kriege, ist aber nicht das eigentliche Problem. Ich wunderte mich nur, dass diese Bits dort überhaupt existieren und frage mich natürlich jetzt, was sie wohl bedeuten...
@Luckie so gings nicht:
Delphi-Quellcode:
procedure loadADir(ADirAndMask : String);
var sr: TSearchRec; begin if FindFirst(ADirAndMask, faAnyFile, sr) = 0 then repeat if (sr.Attr and (faReadOnly or faArchive)) = sr.Attr then AStrList.Add(sr.Name); until FindNext(sr) <> 0; FindClose(sr); end; so gings dann:
Delphi-Quellcode:
...
if FindFirst(ADirAndMask, faAnyFile, sr) = 0 then repeat if (sr.Attr and (faReadOnly or faArchive or (1 shl 13))) = sr.Attr then AStrList.Add(sr.Name); until FindNext(sr) <> 0; ... |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Moin, Moin,
du verwendest..
Delphi-Quellcode:
muss der Vergleich nicht mit
if (sr.Attr and (faReadOnly or faArchive)) = sr.Attr then ...
Delphi-Quellcode:
durchgeführt werden?!
if (sr.Attr and (faReadOnly or faArchive)) = (faReadOnly or faArchive) then ...
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Zitat:
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Ähh, was ist jetzt deine Botschaft? Scheinbar oder anscheinend :cyclops:
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Nee, das stimmt schon so, es wird ja auf Gleichheit abgefragt.
Delphi-Quellcode:
if (Wert1 and Wert2) = Wert1... //trifft nur zu, wenn beide gleich
if (Wert1 and Wert2) = Wert2... //trifft auch nur zu, wenn beide gleich |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Botschaft ist, dass es anscheinend nicht mit
Delphi-Quellcode:
durchgeführt werden muss, enthält aber gleichzeitig nen Disclaimer, weil ich diese Nacht nicht geschalfen hab :mrgreen:
if (sr.Attr and (faReadOnly or faArchive)) = (faReadOnly or faArchive)
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
jooo, überzeugt :oops:
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Zitat:
Delphi-Quellcode:
:wink:
if(not(Wert1 xor Wert2)) then...
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Kürzer (hätte man sowieso machen können meiner Meinung nach):
Delphi-Quellcode:
if Wert1 = Wert2...
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
[OOT]Dachte ich mir auch, aber so kanns ja jeder. :lol:
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
ist das zufällig dieses komische "L"-Bit, welches ich überall im Explorer seh?
(hab mich auch schon etwas gewundert, was dieses soll :shock: ) |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
ist es vll das FILE_ATTRIBUTE_NOT_CONTENT_INDEXED "N" Attribute oder ist das wieder ein neues :gruebel:
das L Attribut sind wohl symbolische Links |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Liste der Anhänge anzeigen (Anzahl: 1)
Ob L-Attrb oder N-Attrb kann man mit dem Mini-Tool (Anhang), das ich gestern zum Zwecke dieser Attribut-Untersuchung schnell noch geschrieben habe, gut feststellen: Damit einfach die Datei (mit dem fraglichen L-Bit o. N-Bit) doppelklicken und das Anzeige-Ergebnis danach mit dem im Explorer vergleichen.
BTW, wie schaff ich es eigentlich, dass die Datei-Attribute im Explorer mit angezeigt werden? Ist bei mir nämlich leider nicht der Fall. |
Re: Vista setzt als Datei-Attribut ein Bit13 ???
Ich weiß nicht, ob es unter Vista auch noch so geht, aber mit einem Rechtsklick auf die Titelleiste der Explorer-Listview kannst Du Dir unter XP die anzuzeigenden Eingenschaften aussuchen.
|
Re: Vista setzt als Datei-Attribut ein Bit13 ???
ja klappt, thx.
@himitsu & @MagicAndre1981, ich habe das eben mal gecheckt, ...also ob dort, wo ein solches Bit13, Bit7 oder Bit10 in den Datei-Attributen auftauchen, ob dort im Explorer dann auch ein L- o. ein N-Attribut angezeigt wird. Antwort: Nö. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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