Windows не использует соглашение о точечных файлах для скрытых файлов. Однако многие приложения Windows (в основном с открытым исходным кодом / кросс-платформенные) используют файлы и папки с этим соглашением. Как я могу заставить Windows Explorer автоматически скрывать эти точечные файлы?
5 ответов
ATTRIB +H /s /d C:\.*
- это команда, которая скрывает все, включая каталоги, начинающиеся с точки
Это не будет перечислять файлы (как указано ниже), но будет попадать в каждый файл, к которому он имеет доступ, и применять атрибут Hidden.
Как только это будет сделано, вы можете убедиться, что в настройках Папки скрыты скрытые файлы. Нажмите Пуск, введите folder options
и нажмите Enter. Перейдите на вкладку « Вид » и выберите « Не показывать скрытые файлы, папки или диски» в разделе « Файлы и папки» \ « Скрытые файлы и папки». Нажмите Apply, затем OK (или просто OK).
Просто:
В проводнике Windows
- Щелкните правой кнопкой по
.folder
вы хотите скрыть; - Нажмите «
properties
, затем нажмите на вкладку «general
»; - Нажмите на
hidden
.
Готово.
PS Проверено только на Windows 7 Professional. PPS Я заметил ваш вопрос, заданный для этого автоматически. Очевидно, что это не поможет, но, возможно, читатели найдут это полезным.
Это возможно в C #, используя System.IO.FileSystemWatcher. Код будет что-то вроде этого. Просто скомпилируйте его и поместите в папку «Автозагрузка». Но этот код не скрывает уже существующие файлы. Так что сначала запустите код от Луки, а потом этот код. Вам нужна Система.IO и система.Безопасность.права доступа
[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 будет скрывать файлы со скрытым или системным флагом. Или файлы могут быть скрыты с помощью ACL. Windows не скрывает файлы по имени файла.
Чтобы Windows явно скрывала файлы по имени файла, вам нужно явно создать эту функцию. В этом случае будет работать либо драйвер файловой системы (для вирусов это характерно), либо хак с расширением оболочки.
Кстати, вы можете подделать эту функцию, отключив "Просмотр расширений файлов" в разделе "Параметры папки", поскольку для Проводника файл, начинающийся с точки, - это файл с расширением, но без имени.
Я не думаю, что есть способ сделать это автоматически, но вы можете попробовать использовать команду ATTRIB, чтобы скрыть эти файлы:
ATTRIB +H
Затем убедитесь, что вы настроили Explorer, чтобы не показывать скрытые файлы.