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.txt会隐藏在 linux 上m2/somefile.txt不会的地方。

于 2012-06-13T21:03:28.843 回答