반응형
Java에서 디렉터리 내용을 삭제하는 방법
디렉토리를 열거한 후 모든 파일을 삭제해야 합니다.
사용:
final File[] files = outputFolder.listFiles();
files.delete();
그러나 디렉토리는 삭제되지 않았습니다.
각 파일에 대해 다음을 수행해야 합니다.
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if(files!=null) { //some JVMs return null for empty dirs
for(File f: files) {
if(f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
그럼 전화해요
deleteFolder(outputFolder);
파일이 있는 폴더를 삭제하기 위해 루프나 재귀 검색이 필요하지 않습니다.다음을 직접 사용할 수 있습니다.
FileUtils.deleteDirectory(<File object of directory>);
이 함수는 폴더와 폴더 내의 모든 파일을 디렉토리 삭제합니다.
삭제하기 전에 디렉토리에서 모든 파일을 삭제해야 합니다.
서드파티제 라이브러리에는 많은 공통 유틸리티가 있습니다.이러한 유틸리티는 다음과 같습니다.
어레이에서는 삭제할 수 없습니다!이렇게 하면 더 잘 동작합니다.
for (File f : files) f.delete();
그러나 폴더가 비어 있지 않으면 작동하지 않습니다.이 경우 폴더 계층으로 반복적으로 내려와 모든 항목을 삭제해야 합니다.네, 자바가 디폴트로 그렇게 할 수 없는 것이 유감입니다.
라이브러리 없이 문제를 해결할 수 있는 방법은 다음과 같습니다.
public static boolean delete(File file) {
File[] flist = null;
if(file == null){
return false;
}
if (file.isFile()) {
return file.delete();
}
if (!file.isDirectory()) {
return false;
}
flist = file.listFiles();
if (flist != null && flist.length > 0) {
for (File f : flist) {
if (!delete(f)) {
return false;
}
}
}
return file.delete();
}
삭제는 할 수 없습니다.File
배열. 다른 모든 답변에서 알 수 있듯이 폴더를 삭제하기 전에 각 개별 파일을 삭제해야 합니다.
final File[] files = outputFolder.listFiles();
for (File f: files) f.delete();
outputFolder.delete();
FileUtils.deleteDirectory()와 함께 FileUtils를 사용합니다.
for(File f : files) {
f.delete();
}
files.delete(); // will work
언급URL : https://stackoverflow.com/questions/7768071/how-to-delete-directory-content-in-java
반응형
'source' 카테고리의 다른 글
특정 카디널리티를 가진 sql 쿼리(다대다) (0) | 2022.11.18 |
---|---|
--all-databases 덤프에서 단일 데이터베이스 가져오기 (0) | 2022.11.18 |
__get__, __set__ 및 Python 기술자에 대해 (0) | 2022.11.18 |
오류와 예외의 차이점은 무엇입니까? (0) | 2022.11.18 |
캔 원 앵귤러JS 컨트롤러가 다른 컨트롤러를 호출합니까? (0) | 2022.11.18 |