2

いくつかのファイルを一覧表示する単純なファイル ウォーカーを作成していて、結果から隠しファイルを除外する必要があります。私は現在、次のようなことをしています:

private void Walk()
{
    this.Files          = [];
    this.Directories    = [];
    DirIterator Entries = dirEntries(this.Directory, SpanMode.depth, this.FollowSymLinks);

    foreach (DirEntry Entry; Entries)
    {
        version(Windows)
        {
            uint Attributes = Entry.attributes();
            if (Attributes & FILE_ATTRIBUTE_HIDDEN)
            {
                continue;
            }
        }

        version(linux)
        {
            // ?????
        }

        if (Entry.isFile())
        {
            this.Files ~= Entry.name;
            this.NumberOfFiles++;
        }

        if (Entry.isDir())
        {
            this.Directories ~= Entry.name;
            this.NumberOfDirectories++;
        }
    }

    this.Walked = true;
}

Windows セクションは正常に動作しているようですが、Linux セクションでファイルが非表示になっているかどうかを判断するにはどうすればよいですか?

4

1 に答える 1

5

Linux では、ファイル/ディレクトリの先頭に a が付いていると非表示になる.ため、ファイル/ディレクトリ名が a で始まるかどうかを確認してください。.

例えば

.m2/.somefile.txtLinux では非表示になり、非表示になりm2/ますsomefile.txt

于 2012-06-13T21:03:28.843 に答える