首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAC隐藏系统文件

MAC隐藏系统文件
EN

Stack Overflow用户
提问于 2014-02-14 19:10:52
回答 3查看 179关注 0票数 0

在使用这个php代码遍历图像目录时,我需要过滤掉我的MAC开发计算机坚持要创建的系统文件。

首先我只需要过滤掉

代码语言:javascript
复制
.DS_Store 

文件,最近也出现了类似这样的文件:

代码语言:javascript
复制
._.DS_Store


    if ($handle = opendir($server_dir)) { //if we could open the directory...
        while (false !== ($entry = readdir($handle))) { //then loop through it...
            if ( ($entry != ".") && ($entry != "..") && (strpos($entry, ".DS_Store") !== false) && (strpos($entry, "._.DS_Store") !== false) ) { //and skip the . and .. entities
                $m .= '
                '.$client_dir.$entry.'
                ';
            }            
        }
        closedir($handle);      
    }
    else {
        echo("Can't open $dir, does it exist? Does www-user have permission to read it?");
    }  

是否还有我需要过滤的隐藏系统文件的其他名称,或者是这两个名称?

有比我更好的方法来处理这件事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-14 19:20:26

您可以替换这个:

代码语言:javascript
复制
 (strpos($entry, ".DS_Store") !== false) && (strpos($entry, "._.DS_Store") !== false)

通过这一点:

代码语言:javascript
复制
 !stristr($entry, '.DS_Store')

还有.localized,看到了一些地方。正如@deceze所说,unix系统中充满了.配置文件,这都取决于您正在处理的目录。

或者更好的是,您可以将所有if语句替换为:

代码语言:javascript
复制
if(substr($entry, 0, 1)!='.')
票数 1
EN

Stack Overflow用户

发布于 2014-02-14 19:29:11

"点文件“是以点开始的文件,是”隐藏“文件的由来已久的惯例。有很多是由各种各样的程序创造出来的。去终点站和ls -a一起玩。除非你知道你在做什么,否则惯例就是要意识到它们,忽略它们。因此,忽略以.开头的所有文件。

票数 1
EN

Stack Overflow用户

发布于 2014-02-14 19:24:52

可以有大量不同的隐藏文件,例如.svn.git,以及上面的示例。它检查第一个字符是否为.

代码语言:javascript
复制
if($entry[0] != '.'){
   // do something as its not a hidden file
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21787624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档