> Java > java지도 시간 > 파일이 존재하고 권한이 있어도 `File.delete()`가 False를 반환하는 이유는 무엇입니까?

파일이 존재하고 권한이 있어도 `File.delete()`가 False를 반환하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-04 03:16:02
원래의
657명이 탐색했습니다.

Why Does `File.delete()` Return False Even When the File Exists and Has Permissions?

파일 존재 및 권한에도 불구하고 File.delete()가 False를 반환합니다.

Q: file.delete()에서 문제가 발생했습니다. file.exists(), file.canRead(), file.canWrite() 및 file.canExecute()가 모두 true를 반환하더라도 메서드는 false를 반환합니다. 이 문제의 원인은 무엇입니까?

A: 파일 존재 및 권한 확인을 수행했음에도 불구하고 Java의 버그로 인해 이 문제가 계속 발생할 수 있습니다. 이를 극복하려면 다음 단계를 통합하는 것이 중요합니다.

  1. 스트림 폐쇄 확인: 코드에서 콘텐츠를 작성한 후 출력 스트림을 플러시하고 닫았습니다. 그러나 해당하는 경우 입력 스트림이 닫혀 있는지도 확인해야 합니다.
  2. System.gc() 호출: 마지막으로 중요한 단계는 System.gc()를 호출하는 것입니다. 파일. 이는 삭제 프로세스를 성공적으로 완료하는 데 필요합니다.

다음 단계를 코드에 통합하면 문제가 해결됩니다.

<code class="java">public void deleteFile() {
    FileOutputStream to = null;
    FileInputStream in = null;
    try {
        in = new FileInputStream(file);
        to = new FileOutputStream(file);
        to.write(fileContent.getBytes());
        to.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
            in = null;
            to.flush();
            to.close();
            to = null;
            System.gc();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // Attempt to delete file
    if (file.delete()) {
        // Delete successful
    } else {
        // Handle unsuccessful deletion
    }
}</code>
로그인 후 복사

다음 제안 사항을 따르면 이 문제를 극복하고 파일 삭제 프로세스가 성공적으로 완료되었는지 확인하세요.

위 내용은 파일이 존재하고 권한이 있어도 `File.delete()`가 False를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿