Saya ingin menyalin file dari satu direktori ke direktori lain (subdirektori) menggunakan Java. Saya punya direktori, dir, dengan file teks. Saya mengulangi lebih dari 20 file pertama dalam dir, dan ingin menyalinnya ke direktori lain di direktori dir, yang telah saya buat tepat sebelum iterasi. Dalam kode, saya ingin menyalin review
(yang mewakili file teks atau ulasan ith) ke trainingDir
. Bagaimana saya bisa melakukan ini? Tampaknya tidak ada fungsi seperti itu (atau saya tidak dapat menemukan). Terima kasih.
boolean success = false;
File[] reviews = dir.listFiles();
String trainingDir = dir.getAbsolutePath() + "/trainingData";
File trDir = new File(trainingDir);
success = trDir.mkdir();
for(int i = 1; i <= 20; i++) {
File review = reviews[i];
}
Jawaban:
Untuk sekarang ini harus menyelesaikan masalah Anda
FileUtils
kelas dari apache commons-io library, tersedia sejak versi 1.2.Menggunakan alat pihak ketiga alih-alih menulis semua utilitas sendiri tampaknya merupakan ide yang lebih baik. Ini dapat menghemat waktu dan sumber daya berharga lainnya.
sumber
FileUtils.copyDirectory(source,dest)
keFileUtils.copyFile(source, dest)
, ini dapat membuat direktori jika tidak adaTidak ada metode salin file di API Standar (belum). Pilihan Anda adalah:
sumber
Di Jawa 7, ada adalah metode standar untuk menyalin file dalam java:
Files.copy.
Ini terintegrasi dengan O / S asli I / O untuk kinerja tinggi.
Lihat A saya tentang cara ringkas untuk menyalin file di Java? untuk deskripsi lengkap tentang penggunaan.
sumber
Contoh di bawah ini dari Java Tips agak lurus ke depan. Sejak itu saya beralih ke Groovy untuk operasi yang berhubungan dengan sistem file - jauh lebih mudah dan elegan. Tapi di sini adalah Tips Java yang saya gunakan di masa lalu. Itu tidak memiliki penanganan pengecualian yang kuat yang diperlukan untuk membuatnya bodoh.
sumber
sourceLocation.exists()
dalam kasus untuk mencegahjava.io.FileNotFoundException
Jika Anda ingin menyalin file dan tidak memindahkannya, Anda dapat membuat kode seperti ini.
sumber
Spring Framework memiliki banyak kelas util serupa seperti Apache Commons Lang. Jadi ada
org.springframework.util.FileSystemUtils
sumber
apache commons Fileutils berguna. Anda dapat melakukan kegiatan di bawah ini.
menyalin file dari satu direktori ke direktori lain.
menggunakan
copyFileToDirectory(File srcFile, File destDir)
menyalin direktori dari satu direktori ke direktori lain.
menggunakan
copyDirectory(File srcDir, File destDir)
menyalin konten dari satu file ke file lainnya
menggunakan
static void copyFile(File srcFile, File destFile)
sumber
sumber
Sumber: https://docs.oracle.com/javase/tutorial/essential/io/copy.html
sumber
Apache commons FileUtils akan berguna, jika Anda hanya ingin memindahkan file dari sumber ke direktori target daripada menyalin seluruh direktori, Anda dapat melakukan:
Jika Anda ingin melewati direktori, Anda dapat melakukan:
sumber
Anda tampaknya mencari solusi sederhana (hal yang baik). Saya sarankan menggunakan FileUtils.copyDirectory Apache Common :
Kode Anda bisa bagus dan sederhana seperti ini:
sumber
Terinspirasi oleh jawaban Mohit di utas ini . Hanya berlaku untuk Java 8.
Berikut ini dapat digunakan untuk menyalin semuanya secara rekursif dari satu folder ke yang lain:
Stream-style FTW.
Pembaruan 2019-06-10: catatan penting - tutup streaming (mis. Menggunakan try-with-resource) yang diperoleh oleh panggilan Files.walk. Terima kasih kepada @jannis untuk intinya.
sumber
Files.walk(source)
seperti yang disarankan dalam dokumen atau Anda mungkin mendapat masalahDi bawah ini adalah kode Brian yang dimodifikasi yang menyalin file dari lokasi sumber ke lokasi tujuan.
sumber
Java 8
Metode Penyalinan
sumber
Anda dapat mengatasinya dengan menyalin file sumber ke file baru dan menghapus yang asli.
sumber
Menggunakan
org.apache.commons.io.FileUtils
Ini sangat berguna
sumber
sumber
Kelas NIO membuat ini sangat sederhana.
http://www.javalobby.org/java/forums/t17036.html
sumber
saya menggunakan kode berikut untuk mentransfer unggahan
CommonMultipartFile
ke folder dan menyalin file itu ke folder tujuan di folder webapps (yaitu) proyek web,sumber
Salin file dari satu direktori ke direktori lain ...
sumber
di sini hanyalah kode java untuk menyalin data dari satu folder ke folder lain, Anda hanya perlu memberikan input dari sumber dan tujuan.
ini kode yang berfungsi untuk apa yang Anda inginkan .. beri tahu saya jika itu membantu
sumber
Anda dapat menggunakan kode berikut untuk menyalin file dari satu direktori ke direktori lain
sumber
sumber
fileChooser
?kode berikut untuk menyalin file dari satu direktori ke direktori lain
sumber
sumber
Bahkan tidak rumit dan tidak diperlukan impor di Java 7:
The
renameTo( )
Metode mengubah nama file:public boolean renameTo( File destination)
Misalnya, untuk mengubah nama file
src.txt
di direktori kerja saat inidst.txt
, Anda akan menulis:Itu dia.
Referensi:
Harold, Elliotte Rusty (2006-05-16). Java I / O (hlm. 393). O'Reilly Media. Edisi menyalakan.
sumber
Anda dapat menggunakan kode berikut untuk menyalin file dari satu direktori ke direktori lain
sumber
Mengikuti fungsi rekursif yang saya tulis, jika itu membantu siapa pun. Ini akan menyalin semua file di dalam sourcedirectory ke destinationDirectory.
contoh:
rfunction("D:/MyDirectory", "D:/MyDirectoryNew", "D:/MyDirectory");
sumber
Jika Anda tidak ingin menggunakan perpustakaan eksternal dan Anda ingin menggunakan kelas java.io alih-alih kelas java.nio, Anda dapat menggunakan metode ringkas ini untuk menyalin folder dan semua kontennya:
sumber
Cara terbaik sesuai pengetahuan saya adalah sebagai berikut:
sumber