2010-11-18 95 views
0

嗨我正在尋找幫助編寫一個簡短的腳本,它將查找文件夾(其中有子文件夾)中的所有文件列出的路徑和文件名在兩個單獨的值在提交給數據庫之前。索引文件從一個文件夾與子文件夾和存儲位置和文件名

任何人都可以幫忙嗎?

+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

回答

0
<?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

1

我有一個遞歸函數來刪除文件夾,你必須改變它,而不是調用'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

相關問題