public void copyDirectory(String pSourcePath, String pDestinationPath, Boolean pOverWrite) throws IOException {
File sourceDir = new File(pSourcePath);
File destinationDir = new File(pDestinationPath);
String[] sourceDirFiles;
if (sourceDir.isDirectory() && sourceDir.exists()) {
sourceDirFiles = sourceDir.list();
if (!destinationDir.exists()) {
destinationDir.mkdir();
}
for (int i = 0; i < sourceDirFiles.length; i++) {
String sourceDirPath = pSourcePath + File.separatorChar + sourceDirFiles[i];
String destinationDirPath = pDestinationPath + File.separatorChar + sourceDirFiles[i];
File sFile = new File(sourceDirPath);
File dFile = new File(destinationDirPath);
if (sFile.isDirectory()) {
copyDirectory(sourceDirPath, destinationDirPath, pOverWrite);
} else {
byte[] fileBuf = new byte[1024];
int bufLength;
if (pOverWrite) {
InputStream in = new FileInputStream(sFile);
OutputStream out = new FileOutputStream(dFile);
while ((bufLength = in.read(fileBuf)) > 0) {
out.write(fileBuf, 0, bufLength);
}
in.close();
out.close();
} else if (!pOverWrite && !dFile.exists()) {
InputStream in = new FileInputStream(sFile);
OutputStream out = new FileOutputStream(dFile);
while ((bufLength = in.read(fileBuf)) > 0) {
out.write(fileBuf, 0, bufLength);
}
in.close();
out.close();
}
}
}
}
}
'Program > Java Core' 카테고리의 다른 글
[Java] 재귀함수를 이용한 폴더 삭제 (0) | 2013.01.17 |
---|---|
[Java] Vector와 ArrayList, LinkedList의 차이점 (0) | 2013.01.10 |
[Java] 한글의 자음, 모음 개수 찾는 프로그램 소스 (0) | 2013.01.09 |
[Java] java.util.Iterator 인터페이스 (0) | 2011.07.07 |