YazılımMimarı | 12 Haziran 2012 20:22 | Java ile klasor, alt klasor ve dosyalari yeni bir klasore kopyalamak [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
Aşağıdaki örnek kod kaynak klasör, alt klasörler ve dosyaları hedef klasöre kopyalar. Kodun içinde açıklamalar (comments) bulunmaktadır.
Kaynak : c:\kp , Hedef : c:\kpyeni PHP- Kodu: package com.kp.file;
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;
public class CopyDirectoryExample { public static void main(String[] args) { File srcFolder = new File("c:\\kp"); File destFolder = new File("c:\\kpyeni");
//Kaynakta klasör varmı yokmu kontrolü if(!srcFolder.exists()){
System.out.println("Kaynak bulunamadı."); //Çıkış System.exit(0);
}else{
try{ copyFolder(srcFolder,destFolder); }catch(IOException e){ e.printStackTrace(); //Hata oluştu, Çıkış System.exit(0); } }
System.out.println("İşem bitti"); }
public static void copyFolder(File src, File dest) throws IOException{
if(src.isDirectory()){
//Eğer hedef klasör yoksa, oluştur if(!dest.exists()){ dest.mkdir(); System.out.println(src + " kopyalanıyor " + dest); }
/Klasör altındaki bütün dosya ve klasörleri listele String files[] = src.list();
for (String file : files) { //Konstrüksiyon metodları File srcFile = new File(src, file); File destFile = new File(dest, file); //recursive kopyalama fonksiyon copyFolder(srcFile,destFile); }
}else{ //Eğer dosya ise //Bytes stream ile dosya tipine bakmadan hedefe kopyala InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length; //dosya içeriği bytes lara bölünerek kopyalanıyor while ((length = in.read(buffer)) > 0){ out.write(buffer, 0, length); }
in.close(); out.close(); System.out.println("Dosya kaynaktan " + src + ", " + dest + " hedefe kopyalandı."); } } }
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] |