在Linux上使用D如何确定文件是否被隐藏?

时间:2012-06-13 21:01:51

标签: file attributes d

我正在创建一个简单的文件助行器来列出一些文件,并且需要从结果中省略隐藏文件。我现在正在做这样的事情:

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部分做些什么来确定文件是否被隐藏?

1 个答案:

答案 0 :(得分:5)

在linux文件/目录中,如果它们以.为前缀,则会被隐藏,因此请检查文件/目录名称是否以.开头

例如

.m2/.somefile.txt将隐藏在Linux上,而m2/somefile.txt则不会。