반응형
Java에서 디렉토리 컨텐츠를 삭제하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
- Java 23 답변 에서 재귀 적으로 디렉토리 삭제
디렉토리를 열거 한 후 이제 모든 파일을 삭제해야합니다.
나는 다음을 사용했다 :
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();
언어 폴더가 비어 있지 않습니다. 이 경우 폴더 계층 구조로 재귀 내려서 모든 것을 삭제해야합니다. 예, Java가 기본적으로 할 수없는 것은 아쉽습니다 ...
다음은 라이브러리없이 문제를 해결할 수있는 한 가지 가능한 솔루션입니다.
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
반응형
'ProgramingTip' 카테고리의 다른 글
태그 (0) | 2020.10.15 |
---|---|
Django 모델에서 UUID를 기본 키로 사용 (일반 관계 영향) (0) | 2020.10.15 |
프레임 워크를 사용할 수 없음 GoogleToolboxForMac (0) | 2020.10.15 |
생성자가 최종적이 될 수없는 이유 (0) | 2020.10.15 |
bash 히스토리를 사용하여 이전 명령을 가져오고 복사 한 다음 '실행'하지만 명령이 주석 처리됨 (0) | 2020.10.15 |