2010-04-16 49 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); 
相关问题