完全なストップ(ピリオド)で始まるファイル/フォルダーの非表示


35

Windowsは、隠しファイルにドットファイル規則を使用しません。ただし、多くのWindowsアプリケーション(主にオープンソース/クロスプラットフォーム)は、この規則でファイルとフォルダーを使用します。Windowsエクスプローラーでこれらのドットファイルを自動的に非表示にするにはどうすればよいですか?

回答:


28

ATTRIB +H /s /d C:\.* 何かを隠すコマンドです。ドットで始まるディレクトリが含まれます

これはファイルをリストしませんが(以下で説明)、アクセス可能なすべてのファイルをヒットし、Hidden属性を適用します。

これが完了したら、フォルダオプションが隠しファイルを隠すように設定されていることを確認できます。[ スタート]をクリックし、入力してfolder optionsを押しEnterます。クリックして[表示 ]タブ、その後、選択したDOは隠しファイル、フォルダ、またはドライブが表示されないの下でファイルとフォルダ \ 隠しファイルとフォルダ。ヒット適用し、OK(または単にOK)。


1
これについてうんざりすることだけ...何も出力しません。どのファイルに触れたかを確認する方法はありません。=(
Mechaflash

4
もう1つ厄介なのは、そのようなファイルを取得するたびに手動で行う必要があるということです。
ジャスティナスデュドゥナス14年

1
私のUsersフォルダはとても感謝しています
マイキー

1
注意:明示的に指定されたフラグを使用して、または使用せずにWindowsファイルをCreateFile呼び出すとCREATE_ALWAYSFILE_ATTRIBUTE_HIDDEN隠しファイルでの操作は失敗します。一部のツールはこれを認識していますが、一部のツールでは(これは問題を正確に覚えていません)静かに発生し、唯一の顕著な問題は構成またはログが何らかの形で更新されないことです。詳細については、たとえばここをチェックしてください:stackoverflow.com/a/13215998/116546
drdaeman

7

シンプル:

Windowsエクスプローラーで

  1. .folder非表示にする対象を右クリックします。
  2. をクリックしてpropertiesから、generalタブをクリックします。
  3. をクリックしhiddenます。

できた

PS Windows 7 Professionalでのみチェックされます。PPS私はあなたの質問がこれを自動的に行うように求められていることに気付きました。明らかにこれはそれを削減しませんが、おそらく読者はそれが便利だと思うでしょう。


3

System.IO.FileSystemWatcherを使用して、C#で可能です。コードは次のようになります。コンパイルして、スタートアップフォルダに配置するだけです。しかし、このコードは既存のファイルを隠しません。したがって、最初に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);
    }
}

2

Windowsは、hiddenまたはsystemフラグを持つファイルを非表示にします。または、ACLを使用してファイルを非表示にすることもできます。Windowsは、ファイル名に基づいてファイルを非表示にしません。

Windowsにファイル名でファイルを非表示にさせるには、明示的に機能を作成する必要があります。この場合、ファイルシステムドライバ(ウイルスがこの「機能」を持つのが一般的です)またはシェル拡張のハックのいずれかが機能します。

ちなみに、エクスプローラーでは、ドットで始まるファイルは拡張子は付いているが名前は付いていないファイルであるため、フォルダーオプションで「ファイル拡張子の表示」をオフにすることで機能を偽造できます。


2
Windowsには、すべてのファイル拡張子を非表示にするオプションがありません。これが唯一の関連するオプションです:Folder Options> View> [ ] Hide extensions for known file types
iglvzx

私が言ったように、実際の機能ではありません。
surfasb

ただし、既知のファイルタイプの拡張子を非表示にしても、そのようなファイルは実際には非表示になりません。私はまだ空の名前でエクスプローラーにリストされています。また、フォルダにはまったく影響を与えないようです(たとえば、「。txt」は完全に表示されたままです)。Windows 7の
sqweek

1

自動的に実行する方法はないと思いますが、ATTRIBコマンドを使用してこれらのファイルを非表示にできます。

ATTRIB + H

次に、Explorerが隠しファイルを表示しないように設定したことを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.