Мне нужно найти файл в каталоге и скопировать его в другой каталог - PullRequest
0 голосов
/ 16 апреля 2010

У меня просто есть имя файла без расширения (.txt, .eps и т. Д.) В каталоге есть несколько подпапок. Таким образом, файл может быть где угодно.

Как мне найти имя файла без расширения и скопировать его в другой каталог?

Ответы [ 4 ]

2 голосов
/ 16 апреля 2010

http://www.pgregg.com/projects/php/preg_find/preg_find.php.txt, кажется, именно то, что вам нужно, чтобы найти файл. затем просто используйте обычную команду php copy () http://php.net/manual/en/function.copy.php, чтобы скопировать ее.

1 голос
/ 16 апреля 2010
0 голосов
/ 16 апреля 2010

Я обнаружил, что 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);
0 голосов
/ 16 апреля 2010

посмотрите на это http://php.net/manual/en/function.copy.php

Что касается поиска имен файлов, может ли использовать базу данных для записи, где находятся файлы? и используйте этот журнал, чтобы найти ваши файлы

...