Odpowiedzi:
ATTRIB +H /s /d C:\.*
to polecenie ukrycia czegokolwiek, włącznie z katalogami zaczynającymi się od kropki
Nie wyświetli to listy plików (jak podano poniżej), ale uderzy w każdy plik, do którego może uzyskać dostęp, i zastosuje atrybut Ukryty.
Po wykonaniu tej czynności możesz upewnić się, że Opcje folderów są ustawione do ukrywania ukrytych plików. Kliknij Start , wpisz folder options
i naciśnij Enter. Kliknij kartę Widok , a następnie wybierz opcję Nie pokazuj ukrytych plików, folderów lub dysków w obszarze Pliki i foldery \ Ukryte pliki i foldery . Kliknij Zastosuj , a następnie OK (lub po prostu OK ).
Users
folder jest zawsze bardzo wdzięczny
CreateFile
wywołań plików Windows z flagą, CREATE_ALWAYS
ale bez wyraźnie określonej FILE_ATTRIBUTE_HIDDEN
flagi, operacje na ukrytych plikach zakończą się niepowodzeniem. Niektóre narzędzia są tego świadome, ale niektóre (przepraszam, nie pamiętam dokładnie, z czym miałem problemy) dzieje się to po cichu, a jedynym zauważalnym problemem jest to, że konfiguracje lub dzienniki nie są jakoś aktualizowane. Sprawdź np. Tutaj, aby uzyskać więcej informacji: stackoverflow.com/a/13215998/116546
Prosty:
W Eksploratorze Windows
.folder
którą chcesz ukryć;properties
, a następnie kliknij general
kartę;hidden
.Gotowy.
PS Zaznaczone tylko w systemie Windows 7 Professional. PPS Zauważyłem, że twoje pytanie zostało zadane automatycznie. Wyraźnie to nie da rady, ale może czytelnicy uznają to za przydatne.
Jest to możliwe w języku C # przy użyciu System.IO.FileSystemWatcher. Kod byłby mniej więcej taki. Wystarczy go skompilować i umieścić w folderze Autostart. Ale ten kod nie ukrywa już istniejących plików. Więc najpierw uruchom kod od Łukasza, a potem ten kod. Potrzebujesz System.IO i System.Security.Permissions
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "C:\\";
watcher.IncludeSubdirectories = true;
watcher.Filter = "*.*";
watcher.Renamed += new RenamedEventHandler(OnRenamed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Started...");
while (true) ;
}
static void Check(string filename)
{
string name = Path.GetFileName(filename);
if (name.StartsWith(".") && !File.GetAttributes(filename).HasFlag(FileAttributes.Hidden))
{
File.SetAttributes(filename, File.GetAttributes(filename) | FileAttributes.Hidden);
}
}
static void watcher_Created(object sender, FileSystemEventArgs e)
{
Check(e.FullPath);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Check(e.FullPath);
}
}
Windows ukryje pliki z flagą ukrytą lub systemową . Lub pliki mogą być ukryte za pomocą ACL. System Windows nie ukrywa plików na podstawie nazwy pliku.
Aby system Windows ukrywał pliki według nazw plików, musisz jawnie utworzyć tę funkcję. W tym przypadku zadziała sterownik systemu plików (zwykle wirusy mają tę „funkcję”) lub włamanie do powłoki.
Na marginesie, możesz sfałszować tę funkcję, wyłączając „wyświetl rozszerzenia plików” w Opcjach folderów, ponieważ dla Eksploratora plik rozpoczynający się kropką jest plikiem z rozszerzeniem, ale bez nazwy.
Folder Options
> View
> [ ] Hide extensions for known file types
.
Nie sądzę, aby istniał sposób, aby stało się to automatycznie, ale możesz spróbować użyć polecenia ATTRIB, aby ukryć te pliki:
ATTRIB + H
Następnie upewnij się, że skonfigurowałeś Eksploratora, aby nie pokazywał ukrytych plików.