2014-10-15 2 views
1

Нужна простой код PHP, чтобы скопировать файл и создать каталог, если не существует (PHP)PHP - скопировать файл и создать каталог, если не существует

пример:

$f1 = "x.txt";  
$f2 = "a/b.txt";  
mycopy($f1, $f2); 

Моя копия должен убедиться, что существует папка a (т. е. создать при необходимости) и скопируйте файл.

Примечание 1: это не является дубликатом Create a folder if it doesn't already exist, так как название полностью отличается и тот факт, что если вы будете искать StackOverflow для php - copy file and create directory if doesn't exist вы не получите Create a folder if it doesn't already exist в результате поиска,

цитирую very good question. But some fool, has made it duplicated. its not at all duplicate. the title very clearly says, that he dont want to break the file path and then check if dir exisst. he simply want to copy a file no matter the destination exist or not (enRaiser)

Примечание 2: Первоначальная цель, которую я задавала этому вопросу, состояла в том, что я не мог найти где-нибудь в Интернете образец кода для чего-то, что понадобится каждому разработчику php в какой-то момент - я опубликовал свою попытку как ответ (который почему-то проголосовал?), и я хотел позволить разработчикам StackOverflow попробовать лучшее решение, но вместо этого они проголосовали его вниз и закрыл его, как дублируется на Create a folder if it doesn't already exist который я думаю, против духа StackOverflow

Любой путь, по просьбе Ohgodwhy добавить мою попытку на вопрос, Вот оно:

function mycopy($s1,$s2) { 
    $path = pathinfo($s2); 
    if (!file_exists($path['dirname'])) { 
     mkdir($path['dirname'], 0777, true); 
    } 
    if (!copy($s1,$s2)) { 
     echo "copy failed \n"; 
    } 
} 
+1

Отлично. Где код, который вы пытались использовать? Поскольку вы предоставили здесь ничего, что даже пытается выполнить ваш запрос. – Ohgodwhy

+1

Используйте 'mkdir()' и 'copy()', найденные в руководстве по PHP. В руководстве говорится, что делать. – Rasclatt

+1

очень хороший вопрос. Но какой-то дурак сделал это дублированным. его совсем не дублируют. в названии очень четко сказано, что он не хочет нарушать путь к файлу, а затем проверяет, существует ли dir exisst. он просто хочет скопировать файл независимо от назначения или нет. – enRaiser

ответ

1
function mycopy($s1,$s2) { 
    $path = pathinfo($s2); 
    if (!file_exists($path['dirname'])) { 
     mkdir($path['dirname'], 0777, true); 
    } 
    if (!copy($s1,$s2)) { 
     echo "copy failed \n"; 
    } 
} 
Смежные вопросы