1

Windows フォルダー内のアイテム (フォルダーとファイル) の数を取得する必要があります。隠しアイテムを入れるか入れないかは条件次第で簡単にできます。しかし、私のプログラムでは、ユーザーに表示されるアイテムの数を取得したい! つまり、非表示のアイテムがフォルダ内で視覚的に見える場合は、カウントに含める必要があります。非表示のアイテムが表示されない場合は、含めるべきではありません。

Windowsマシンで「隠しファイルを表示する」プロパティが設定されているかどうかを知るにはどうすればよいですか。つまり、ファイルまたはディレクトリがユーザーから (視覚的に) 「本当に隠されている」かどうかを確認する方法はありますか??

更新:この質問をもう一度開きます。ここでの元の回答は私の質問に答えましたが、ある程度は絶対確実ではありません。

新しいシナリオは次のとおりです。

Cドライブの特定のファイル(まだ他の場所ではありません)は、視覚的に隠されていますが、それらの非表示属性はfalse(またはチェックされていません)、奇妙です. これらのファイルは、(フォルダ オプションから) 表示されると、他の隠しファイルのように淡く見え、フォルダ オプションで「隠しファイルを表示しない」を設定すると (他の通常の隠しファイルと同様に)視覚的に隠されます。

私のマシンにあるこれらのファイルは、autoexec.batconfig.sysにありC:\ます。これは、Windows XP マシンと Windows 7 マシンで見つかりました。そのようなファイルを識別する方法はありますか? 基本的に、ディレクトリ内の表示可能な (視覚的に) ファイルの数を取得しようとしていましたが、アプリケーションでファイルの数を取得しようとすると失敗しますC:\。何が起こるかというと、アプリケーションはこれら 2 つのファイルをカウントしますが (その属性は非表示になっていないため)、視覚的な観点からは、次のように通常は非表示になっています。

string[] f = Directory.GetFiles(path);

int count = 0;
foreach (string s in f)
{
    FileInfo i = new FileInfo(s);
    if ((i.Attributes & FileAttributes.Hidden) == 0)
        count++;
}

return count;

したがって、唯一の正しい方法は、Shell API を呼び出すことだと思います。私は良いスターターを探しています..

ありがとう..

4

3 に答える 3

2

「隠しファイルの表示」に関するグローバル フラグを確認するためのレジストリ キーがありますSoftware\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden- http://www.pctools.com/guides/registry/detail/1007/を参照してください。

編集:
「システムファイルを表示する」という別の設定があることに注意してくださいShowSuperHidden

于 2011-09-24T07:20:55.137 に答える
2

この設定はレジストリに保存され、次の場所にあります。

User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\
Advanced]
Value Name: Hidden
Data Type: REG_DWORD (DWORD Value)
Value Data: (1 = show hidden, 2 = do not show)

この値にアクセスするコード:

int hiddenValue = Registry.GetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\","Hidden",2);

if(hiddenValue == 1)
{
   //Files not hidden
}
else
{
   //Files are hidden
}

レジストリ キーの詳細

于 2011-09-24T07:24:02.587 に答える
0

autoexec.batC:\にconfig.sysは、Yahia が ShowSuperHidden設定について言及しているシステム ファイルがあります。

ファイルがシステムファイルかどうかを確認する方法は次のとおりです。ファイル属性が HSA の場合、非表示、システムおよびファイルがアーカイブの準備ができていることを意味します。以下は、ファイル属性のリストです。

File attributes: 

A = Files ready for archiving 

H = Hidden 

C = Compressed 

HC is two attributes = Hidden & Compressed 

R = Read-only 

S = System 

HSA is three attributes = Hidden, System & Files ready for archiving 

E = Encrypted 

Encrypted files and folders cannot be compressed. 

ソース: http://www.tomshardware.com/forum/115561-45-file-attribute

于 2012-07-30T06:44:39.110 に答える