我正在尝试遍历此目录:
$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:
答案 0 :(得分:1)
基于DirectoryIterator class,这样的事情应该有效:
<?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)窗口作为管理员运行。如果这是link
(lnk),您可以更改链接设置中的权限。
例如,如果右键单击cmd的快捷方式选择properties
,您将转到快捷方式&gt;高级&gt;以管理员身份运行。