隐藏以句号(句点)开头的文件/文件夹

igl*_*vzx 45 windows-7 windows-explorer

Windows 不对隐藏文件使用点文件约定。但是,许多 Windows 应用程序(主要是开源/跨平台)使用具有此约定的文件和文件夹。如何让 Windows 资源管理器自动隐藏这些点文件?

Can*_*uke 35

ATTRIB +H /s /d C:\.* 是隐藏任何东西的命令,包括以点开头的目录

这不会列出文件(如下所述),但会点击它可以访问的每个文件,并应用 Hidden 属性。

完成此操作后,您可以确保将文件夹选项设置为隐藏隐藏文件。单击开始,键入folder options并按Enter。单击“查看”选项卡,然后选择文件和文件夹\隐藏文件和文件夹”下的不显示隐藏的文件、文件夹或驱动器。点击Apply,然后OK(或只是OK)。

  • 另一件糟糕的事情是,每次获得此类文件时都必须手动执行此操作。 (6认同)
  • 我的“用户”文件夹非常感激 (3认同)
  • 注意:在 Windows 文件中,`CreateFile` 调用带有 `CREATE_ALWAYS` 但没有明确指定 `FILE_ATTRIBUTE_HIDDEN` 标志,对隐藏文件的操作将失败。一些工具知道这一点,但有些工具(抱歉,不记得我到底遇到了什么问题)这种情况会悄悄发生,唯一值得注意的问题是配置或日志以某种方式没有更新。在这里查看更多详细信息:/sf/answers/925119891/ (2认同)

小智 10

简单的:

在 Windows 资源管理器中

  1. 右键单击.folder要隐藏的;
  2. 单击properties,然后单击general选项卡;
  3. 单击hidden

完毕。

PS 仅在 Windows 7 Professional 上检查。PPS 我注意到您的问题要求自动执行此操作。显然这不会削减它,但也许读者会发现它很有用。


Len*_*_96 6

在 C# 中可以使用 System.IO.FileSystemWatcher。代码会是这样的。只需编译它并将其放在 Start Up 文件夹中即可。但此代码不会隐藏已经存在的文件。因此,首先运行 Luke 的代码,然后运行此代码。您需要 System.IO 和 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);
    }
}
Run Code Online (Sandbox Code Playgroud)