索引文件从一个文件夹与子文件夹和存储位置和文件名

问题描述:

嗨我正在寻找帮助编写一个简短的脚本,它将查找文件夹(其中有子文件夹)中的所有文件列出的路径和文件名在两个单独的值在提交给数据库之前。索引文件从一个文件夹与子文件夹和存储位置和文件名

任何人都可以帮忙吗?

+0

所以基本上我有一个数据库中的路径和文件名,我可以在以后搜索的索引... – Andy 2010-11-18 08:22:58

+0

这可以帮助你http://www.php.net/manual/en/function.opendir .php#93547 – 2010-11-18 08:31:14

<?php 

print_r(getPathFiles("./")); 

function getPathFiles($dir) { 
    $ite=new RecursiveDirectoryIterator($dir); 
    $foo=new RecursiveIteratorIterator($ite); 
    $ret=array(); 
    foreach ($foo as $path=>$cur) { 
     $ret[]=array('dir'=>dirname($path),'file'=>basename($path)); 
    } 
    return $ret; 
} 

?> 
+0

这看起来很酷,这基本上返回一个目录内的所有文件的数组? – Andy 2010-11-18 08:45:07

+0

是的,它为一个大数组中的给定路径的任何子目录中的每个文件返回一个数组(带有键:'dir'和'file') – stewe 2010-11-18 08:54:58

+0

我很好,如果我使用这个../../。 ./但只要我使用../../../collections它没有带回......虽然文件夹肯定存在......任何想法? – Andy 2010-11-18 09:02:39

我有一个递归函数来删除文件夹,你必须改变它,而不是调用'unlink'功能,你可以将它保存在一个变量或数据库中的..

public function deleteFolder($dirname) { 
     if (is_dir($dirname)){ 
      $dir_handle = opendir($dirname); 
     } 
     if (!isset($dir_handle) || !$dir_handle){ 
      return false; 
     } 
     while($file = readdir($dir_handle)) { 
      if ($file != "." && $file != "..") { 
       if (!is_dir($dirname."/".$file)){ 
        //change this line 
        unlink($dirname."/".$file); 
       } else { 
        //recursive call 
        $this->deleteFolder($dirname.'/'.$file); 
       } 
      } 
     } 
     closedir($dir_handle); 
     //also change this one 
      rmdir($dirname); 
     return true; 
    } 

希望这有帮助,祝你好运!

+0

非常感谢您的亲切! – Andy 2010-11-18 08:39:33