Mam ukryty plik na wymiennej pamięci masowej USB (system plików FAT).Jak ustawić czysty atrybut "X" dla plików z C#?
Używam systemu Windows 7. Jeśli przejdę do okna Właściwości tego pliku, a następnie do karty Szczegóły, zobaczę, że atrybutami pliku są HX
. Kiedy uruchamiam cmd
i używać attrib
, powiedziano mi, że plik ma atrybut H. nic o X. próbowałem help attrib
, ale nadal nic o atrybucie X.
wiem, że:
- H = ukryte
- S = system
- A = archiwalne
- R = Readonly
Jednak nie mam pojęcia, co oznacza X. Znalazłem także to, do czego służą N and E attributes.
Wikipedia nie wspomina o tym, czym jest atrybut X.
Google znaleźć dwa tematy wspomnieć atrybut X:
Żaden z nich nie pomógł.
Chciałbym móc odczytać/zapisać tę flagę w języku C#, ale do tej pory czytałem dokumentację dla FileAttributes
enumeration i eksperymentowałem z ustawianiem niektórych wymienionych atrybutów (przy użyciu metod File.GetAttributes
& File.SetAttributes
) w pliku.
Żaden z tych eksperymentów nie spowodował pojawienia się atrybutu X we właściwościach -> Szczegóły. Nie mam pojęcia, jak do tego podejść, zwłaszcza, że wciąż nie wiem, co oznacza atrybut X.
Czym jest atrybut X i jak można go ustawić/wyczyścić na wybranym pliku w C#?
Wygląda na to, że wszystkie komentarze zostały zgubione - Zostałem zapytany, czy atrybut X zniknie po wykonaniu 'chkdsk' Nie, zrobiłem' chkdsk' - nie znaleziono żadnych problemów, a atrybut X jest nadal mi. – beam022
Zgaduję, że celowo nieważny atrybut pliku. W FAT32, 0x40 i 0x80 istnieją dwa nieprzypisane bity. To tylko domysły. –
Podejrzewam, że Hans ma rację. Pobierz atrybuty pliku, wyrzuć je do 'int' i wyprowadź na hex. Następnie porównaj ustawione bity do stałych atrybutów pliku: http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117(v=vs.85).aspx. To powinno Ci powiedzieć, który bit jest nieprawidłowo ustawiony. Jeśli chcesz wyczyścić atrybut, wyczyść go w tym int, odrzuć int z powrotem do 'FileAttributes' i wywołaj' File.SetAttributes'. –