Kopiowanie katalogu z jednego miejsca do drugiego

Kopiowanie katalogu z jednego miejsca do drugiego

Problem

Chcesz skopiować cały katalog do innej lokalizacji.

Chcesz go skopiować, wszystkie pliki i podkatalogowe, do nowej lokalizacji.

Rozwiązanie

Użyj Plik :: copyDirectory () metoda.

$ sache = file :: copyDirectory ($ aceredir, $ destylarDir);

Metoda zwróci true, jeśli wszystkie pliki i podwodniki zostaną pomyślnie skopiowane.

Jeśli nie ma katalogu docelowego, zostanie utworzony. Zostanie utworzony w razie potrzeby rekurencyjnie.

Dyskusja

Istnieje opcjonalny trzeci argument.

Wewnętrznie Plik :: copyDirectory () Metoda używa klasy plików PHP, do skanowania plików i katalogów do kopiowania. FileSystemsiterator bierze flagi jako drugie parametry. Możesz przekazać trzeci argument Plik :: copyDirectory () który jest przekazywany konstruktorowi plików. Domyślnie, Plik :: copyDirectory () używa stałej skip_dots.

Oznacza to, że pliki zaczynające się od kropek nie są kopiowane.

Uważaj, użyj tej trzeciej opcji. Plik :: copyDirectory () Metoda może nie zachowywać się zgodnie z oczekiwaniami, chyba że dobrze rozumiesz, w jaki sposób pliki systemu systemu jest używane do przejścia z katalogu.