我在C中创建一个模拟“ls -li”行为的函数,所以我必须知道文件或目录是否被隐藏而不显示它。
谢谢
答案 0 :(得分:2)
按照惯例,隐藏文件以点(。)开头。 ls -a会显示它们。但正常的ls没有。 现代文件系统具有可以使文件隐藏的扩展属性(xttr)。 这是一个例子 http://man7.org/tlpi/code/online/dist/xattr/xattr_view.c.html
答案 1 :(得分:2)
正常隐藏的文件一开始就包含.
。
检查文件名的第一个字符是.
是否为.
,然后是隐藏文件。不显示该文件。
char *filenames[10];
for(i=0;i<10;i++)
if(filenames[i][0]!='.')
//display filename
答案 2 :(得分:0)
检查文件名的第一个字符是否为点。以.
开头的文件名在Unix中被认为是“隐藏的”,因为ls
-a
或-A
没有显示它们。