Kopiere en katalog fra ett sted til et annet

Kopiere en katalog fra ett sted til et annet

Problem

Du vil kopiere en hel katalog til et annet sted.

Du vil kopiere det rekursivt, alle filer og underkataloger, til det nye stedet.

Løsning

Bruke Fil :: copyDirectory () metode.

$ suksess = fil :: copyDirectory ($ sourcedir, $ destinationDir);

Metoden vil returnere sant hvis alle filer og underkataloger blir kopiert med hell.

Hvis destinasjonskatalogen ikke eksisterer, vil den bli opprettet. Det vil bli opprettet rekursivt etter behov.

Diskusjon

Det er et valgfritt tredje argument.

Internt Fil :: copyDirectory () Metoden bruker PHPs filesystemiteratorklasse for å skanne filene og katalogene for å kopiere. Filesystemiterator tar flagg som en annen parametere. Du kan gi et tredje argument til Fil :: copyDirectory () som blir sendt videre til FilesystemIterator -konstruktøren. Som standard, Fil :: copyDirectory () bruker Skip_dots konstant.

Dette betyr at filer som begynner med prikker ikke er kopiert.

Vær forsiktig med dette tredje alternativet. De Fil :: copyDirectory () Metoden kan ikke oppføre seg som forventet med mindre du forstår godt hvordan filesystemiteratoren brukes til katalogovergang.