Windows Datei Attribute
-
Hallo zusammen,
wie man die Datei Attribute ausliest weiß ich, nur habe ich nun das Problem, dass ich keine Dokumentation finde, die mir sagen kann, was die ausgegebenen Zahlen nun bedeuten. Z.B. bekomme ich bei einer Datei die Zahl "32", "33" usw. raus.
Da gibt es doch bestimmt ne Doku. zu oder nicht? Finde sie aber bei google.de nicht.
Wäre nett wenn mir einer einen Link oder ähnliches geben könnte.
Gruß
Thorsten
-
du musst die bits testen
if(dw & FILE_ATTRIBUTE_READONLY)) // datei ist schreibgeschützthttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getfileattributes.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/retrieving_and_changing_file_attributes.asp
-
hmm, die Links könnten mich evtl. weiter bringen, nur gibt es nirgends eine Übersicht wo z.B steht:
31=normale Datei
32=Schreibgeschützte Datei.Muss es doch bestimmt irgendwo geben, wenn man so die Zahlen von _WIN32_FIND_DATA ausgegeben bekommt oder nicht?
trotzdem danke schonmal
-
wenn ich nun den Wert vergleiche
if(at & FILE_ATTRIBUTE_HIDDEN) { Edit1->Text="Versteckt"; } else { Edit1->Text="nicht Versteckt"; }habe ich nun das Problem, dass dann immer "Versteckt" dabei raus kommt, egal ob ich die datei nun vesteckt habe oder nicht.
einlesen mache ich ja so vohrer
(ausschnitt)
DWORD at; at=GetFileAttributes(DateiPfad.c_str());vielen dank schonmal
-
da wird es nirgendwo eine Beschreibung geben, da die Zahlenwerte aus zusammengesetzten Bits bestehen. Z.B. kriegst du 5 zurück (00000101), dann ist Bit 1 gesetzt und Bit 3 gesetzt.
MAPIWIN.H #define FILE_ATTRIBUTE_READONLY 0x00000001 #define FILE_ATTRIBUTE_HIDDEN 0x00000002 #define FILE_ATTRIBUTE_SYSTEM 0x00000004 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 #define FILE_ATTRIBUTE_NORMAL 0x00000080 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100Bit 1 = 0x00000001
Bit 3 = 0x00000004
also ein Readonly + SystemfilePS: such mal mit VC++ (Find in Files) unter
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE
nach solchen defines, vielleicht hilft dir das was.Gruß
-
ja, ich weiß jetzt im moment gar nicht, ob ich die attribut werte mit getfileattributes ausgeben lassen soll oder mit hilfe des
TSearchRec db db.FindData.dwFileAttributesund dann die Werte vergleiche.
Nur da das dwFileAttributes von typ unsigned long ist, bekomme ich nur zahlen wie z.b. 35 raus