2010-04-16 51 views
0

我只有文件名,沒有擴展名(.txt,.eps等) 該目錄有幾個子文件夾。所以,該文件可以在任何地方。我需要在目錄中找到文件並將其複製到不同的目錄

我該如何尋找文件名,沒有擴展名,並將其複製到不同的目錄?

+0

難道你需要知道延期?如果你想複製'text.txt'但是程序找到並複製'text.doc',會發生什麼? – 2010-04-16 15:10:57

+0

http://stackoverflow.com/questions/1860393/recursive-file-search-php – Gordon 2010-04-16 15:12:17

+0

可能的重複,這實際上是一個很好的觀點。如果文件名稱是唯一的呢? – Kel 2010-04-16 15:13:18

回答

1
+0

它無法找到網絡驅動器: 致命錯誤:未捕獲的異常「UnexpectedValueException '消息'RecursiveDirectoryIterator :: __構造(X:\ apps)...未能打開dir:沒有這樣的文件或目錄' – Kel 2010-04-16 15:31:57

0

看看這個http://php.net/manual/en/function.copy.php

爲尋找文件名,可以使用數據庫來記錄文件所在的位置?並使用該日誌查找您的文件

+0

我需要在目錄中找到第一個文件。 例如:我有文件名:iamfile01。 我需要先找到它... 我知道這是對硬盤驅動器X:但不知道在哪個目錄它可以在 – Kel 2010-04-16 15:11:48

0

我發現scandir()是這樣的操作最快的方法:

function findRecursive($folder, $file) { 
    foreach (scandir($folder) as $filename) { 
     $path = $folder . '/' . $filename; 
     # $filename starts with desired string 
     if (strpos($filename, $file) === 0) { 
      return $path; 
     } 
     # search sub-directories 
     if (is_dir($path)) { 
      $result = findRecursive($path); 
      if ($result !== NULL) { 
       return $result; 
      } 
     } 
    } 
} 

要複製的文件,你可以使用copy()

copy(findRecursive($folder, $partOfFilename), $targetFile); 
相關問題