31

Windows не использует соглашение о точечных файлах для скрытых файлов. Однако многие приложения Windows (в основном с открытым исходным кодом / кросс-платформенные) используют файлы и папки с этим соглашением. Как я могу заставить Windows Explorer автоматически скрывать эти точечные файлы?

5 ответов5

27

ATTRIB +H /s /d C:\.* - это команда, которая скрывает все, включая каталоги, начинающиеся с точки

Это не будет перечислять файлы (как указано ниже), но будет попадать в каждый файл, к которому он имеет доступ, и применять атрибут Hidden.

Как только это будет сделано, вы можете убедиться, что в настройках Папки скрыты скрытые файлы. Нажмите Пуск, введите folder options и нажмите Enter. Перейдите на вкладку « Вид » и выберите « Не показывать скрытые файлы, папки или диски» в разделе « Файлы и папки» \ « Скрытые файлы и папки». Нажмите Apply, затем OK (или просто OK).

7

Просто:

В проводнике Windows

  1. Щелкните правой кнопкой по .folder вы хотите скрыть;
  2. Нажмите « properties , затем нажмите на вкладку « general »;
  3. Нажмите на hidden .

Готово.

PS Проверено только на Windows 7 Professional. PPS Я заметил ваш вопрос, заданный для этого автоматически. Очевидно, что это не поможет, но, возможно, читатели найдут это полезным.

2

Это возможно в 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);
    }
}
2

Windows будет скрывать файлы со скрытым или системным флагом. Или файлы могут быть скрыты с помощью ACL. Windows не скрывает файлы по имени файла.

Чтобы Windows явно скрывала файлы по имени файла, вам нужно явно создать эту функцию. В этом случае будет работать либо драйвер файловой системы (для вирусов это характерно), либо хак с расширением оболочки.

Кстати, вы можете подделать эту функцию, отключив "Просмотр расширений файлов" в разделе "Параметры папки", поскольку для Проводника файл, начинающийся с точки, - это файл с расширением, но без имени.

0

Я не думаю, что есть способ сделать это автоматически, но вы можете попробовать использовать команду ATTRIB, чтобы скрыть эти файлы:

ATTRIB +H

Затем убедитесь, что вы настроили Explorer, чтобы не показывать скрытые файлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .