Saya mencoba menyalin seluruh isi direktori ke lokasi lain menggunakan
tetapi dikatakan tidak dapat menemukan aliran, benar Cara lain Terima kasih Dave Jawaban: Tampaknya salinan hanya menangani file tunggal . Berikut adalah fungsi untuk menyalin secara rekursif yang saya temukan dalam catatan ini di halaman dokumentasi salinan :
Seperti dijelaskan di sini , ini adalah pendekatan lain yang menangani symlink juga:
copy () hanya berfungsi dengan file. Baik perintah salin DOS dan Unix cp akan menyalin secara rekursif - jadi solusi tercepat adalah dengan keluar dan menggunakannya. misalnya
Kalau tidak, Anda harus menggunakan misalnya
Solusi terbaik adalah!
Seperti yang dikatakan di tempat lain,
dari baris 4 terakhir, buat ini
dan
Terima kasih penuh harus ditujukan kepada Felix Kling untuk jawaban luar biasa yang telah saya gunakan dengan penuh syukur dalam kode saya. Saya menawarkan peningkatan kecil dari nilai pengembalian boolean untuk melaporkan keberhasilan atau kegagalan:
Versi @Kzoty saya yang sudah dipangkas. Terima kasih, Kzoty. Pemakaian
Saya mengkloning seluruh direktori dengan SPL Directory Iterator.
Untuk server Linux, Anda hanya perlu satu baris kode untuk menyalin secara rekursif sambil mempertahankan izin:
Cara lain untuk melakukannya adalah:
tapi lebih lambat dan tidak mempertahankan izin. Saya memiliki situasi yang serupa di mana saya perlu menyalin dari satu domain ke domain lain di server yang sama, Inilah yang berhasil dalam kasus saya, Anda juga dapat menyesuaikan sesuai keinginan Anda:
Perhatikan penggunaan "substr ()", tanpa itu, tujuan menjadi '/ home / pengguna / abcde.com/../folder/', yang mungkin sesuatu yang tidak Anda inginkan. Jadi, saya menggunakan substr () untuk menghilangkan 3 karakter pertama (../) untuk mendapatkan tujuan yang diinginkan yaitu '/home/user/abcde.com/folder/'. Jadi, Anda dapat menyesuaikan fungsi substr () dan juga fungsi glob () hingga sesuai dengan kebutuhan pribadi Anda. Semoga ini membantu. |