웹 개발/웹 개발
파일 삭제 (java.nio.file.Files)
크리스피코드
2023. 3. 27. 10:29
0. java.nio.file.Files
void delete(Path path)
파일 또는 디렉토리를 삭제하는 메서드.
해당 경로에 파일 또는 디렉토리가 존재하지 않을 경우 NoSuchFileException이 발생한다.
디렉토리의 경우 비어있어야 삭제할 수 있다. 비어있지 않을 경우 DirectoryNotEmptyException이 발생한다.
파일이 열려있거나 다른 프로그램이 사용 중일 경우에도 예외가 발생한다.
public void deleteFile(String filename){
Path targetFile = Paths.get("D:\\uploads", filename);
Path targetDir = Paths.get("D:\\uploads\\testdir");
try{
Files.delete(targetFile);
Files.delete(targetDir);
} catch(NoSuchFileException e){
System.out.println("파일이 존재하지 않습니다.");
} catch(DirectoryNotEmptyException e){
System.out.println("디렉토리가 비어있지 않습니다.");
} catch(IOException e){
e.printStackTrace();
}
}
boolean deleteIfExists(Path path)
파일이 존재할 경우 파일을 삭제하는 메서드.
파일 삭제에 성공할 경우 true, 삭제에 실패했을 경우 false를 반환한다.
위의 delete()와 다르게 파일이 존재하지 않아도 NoSuchFileException을 발생시키지 않는다.
public void deleteFile(String filename){
Path targetFile = Paths.get("D:\\uploads", filename);
Path targetDir = Paths.get("D:\\uploads\\testdir");
try{
Files.deleteIfExists(targetFile);
Files.deleteIfExists(targetDir);
} catch(DirectoryNotEmptyException e){
System.out.println("디렉토리가 비어있지 않습니다.");
} catch(IOException e){
e.printStackTrace();
}
}
1. java.io.File
boolean delete()
삭제하고자 하는 파일이 존재하지 않거나 삭제하고자 하는 디렉토리가 비어있지 않은 경우, 또 파일이 다른 프로그램에 의해 사용 중이라 삭제에 실패할 경우, false를 반환한다.
public void deleteFile(String filename){
File targetFile = new File("D:\\uploads", filename);
File targetDir = new File("D:\\uploads\\testdir");
boolean fileResult = targetFile.delete();
boolean dirResult = targetDir.delete();
System.out.println("파일 삭제 결과 : " + fileResult);
System.out.println("디렉토리 삭제 결과 : " + dirResult);
}