首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP命令不区分windows中的快捷方式

PHP命令不区分windows中的快捷方式
EN

Stack Overflow用户
提问于 2013-05-09 23:22:29
回答 1查看 205关注 0票数 1

在windows中,我打开一个dir,读取文件,并对每个文件运行stat来确定大小等。

问题是,当我在文件夹快捷方式上运行stat时,它作为一个文件夹返回,并且在mode位掩码中看不到任何可能表明这一点的地方。对于c:\Documents and Settings\myUserName\中的所有文件夹快捷方式都是这样。

对于这些快捷方式,is_file返回falseis_dir返回true,XP不支持is_link

下面是我的代码的摘录(它已经被删减了,所以可能有bug):

代码语言:javascript
复制
if(($h=@opendir($root))!==false){
    while (false !== ($file = readdir($h))){
        if(!($file=="." || $file=="..")){
            if( $stat = @lstat($root . $file) ){
                $ary[0] = $file;
                $ary[1] = $root;
                $ary[2] = Date("m/d/y H:i:s", $stat['mtime']);
                if($stat['mode'] & 040000){
                    $ary[3]="dir";
                    $ary[4]=0;
                }else{
                    $ary[3] ="file";
                    $ary[4] = $stat['size'];
                }
                echo(json_encode($ary));
            }
        }
    }
}

有个解决办法会很感激的..。

编辑:温特血的解决方案几乎奏效了

首先-我的错-这是一台win7机器。

感谢温特血的快速扭转-这对几个快捷方式有效,PHP手册上说。然而,

C:\user\myUserName\AppData\Local\Application Data

(以及其他的)仍然作为目录返回,而winSCP正确地将它们视为快捷方式。事实上,“模式”是040777,与许多真正的文件夹完全相同。

还有其他建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 23:30:27

PHP的stat()函数“遵循”快捷方式/符号链接,报告链接文件/文件夹的详细信息,而不是实际链接本身。

要获取链接本身的stat详细信息,请使用lstat()

关于lstat的PHP文档中有更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16472776

复制
相关文章

相似问题

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