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

Gar*_*hby 2 attributes d file

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

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;
}
Run Code Online (Sandbox Code Playgroud)

Windows部分似乎工作正常但我需要做什么才能确定Linux文件是否被隐藏?

Mik*_*hon 5

在linux文件/目录中,如果它们以前面的方式被隐藏,.那么检查文件/目录名是否以a开头.

例如

.m2/并将.somefile.txt隐藏在Linux上,m2/somefile.txt不是.

  • 是的.:) (2认同)