我正在创建一个简单的文件助行器来列出一些文件,并且需要从结果中省略隐藏文件。我现在正在做这样的事情:
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部分做些什么来确定文件是否被隐藏?
答案 0 :(得分:5)
在linux文件/目录中,如果它们以.
为前缀,则会被隐藏,因此请检查文件/目录名称是否以.
开头
例如
.m2/
和.somefile.txt
将隐藏在Linux上,而m2/
和somefile.txt
则不会。