2

我正在尝试遍历此目录:

$path = "D:\\import\\statsummary\\";

这是我的代码:

$path = "D:\\import\\statsummary\\";
//$path = "C:\\test";
//function load_csv($path, $filename){
    if(is_null($filename)){
        header('Content-type: text/plain');
        $output = array();
        foreach (new DirectoryIterator($path) as $file){
            if($file->isFile()){
                $output[] = $i++ . " " . $file->getFileName() . "\n";
                $output[] = file($file->getPathName());
                $output[] = "\n------------\n";
            }
        }
    }

    echo implode('', $output);

当我运行这个脚本时,我得到这个错误:

Fatal error: Uncaught exception 'UnexpectedValueException' with message 'DirectoryIterator::__construct(D:\import\statsummary\,D:\import\statsummary\): Access is denied. (code: 5)' in C:\inetpub\wwwroot\include\file_importer.php:10
Stack trace:
#0 C:\inetpub\wwwroot\include\file_importer.php(10): DirectoryIterator->__construct('D:\import\...')
#1 {main}
  thrown in C:\inetpub\wwwroot\include\file_importer.php on line 10

但是当我将它更改为C:\驱动器上的测试目录时,它运行得很好。我什至创建了一个用户名来按照这篇文章中的指示运行 PHP:

php - 无法连接到网络共享 - 代码日志

4

1 回答 1

1

基于DirectoryIterator 类,这样的事情应该可以工作:

<?php
$path = "D:/import/statsummary";
$output=array();
$iterator = new DirectoryIterator(path);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        $filename= $fileinfo->getFilename();
        $path=$fileinfo->getPathname();
        $output[][$filename]=$path;
    }
}

print_r($output);
?>

更新

由于您的访问被拒绝,因此您很可能需要以管理员command prompt身份运行(CMD)窗口。如果这是在(lnk) 上,您可以更改链接设置中的权限。link

例如,如果您右键单击 cmd 作为 select 的快捷方式properties,您将转到快捷方式>高级>以管理员身份运行。

于 2013-05-09T15:16:40.123 回答