我正在创建一个简单的文件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文件是否被隐藏?
在linux文件/目录中,如果它们以前面的方式被隐藏,.那么检查文件/目录名是否以a开头.
例如
.m2/并将.somefile.txt隐藏在Linux上,m2/而somefile.txt不是.