相关疑难解决方法(0)

java.nio.file.Files.delete(Path path) - 偶尔使用SimpleFileVisitor以递归方式删除目录失败

尝试在Java中java.nio.file.DirectoryNotEmptyException递归删除从Delete目录中删除的递归删除方法中的偶然问题

代码(归功于@TrevorRobinson):

static void removeRecursive(Path path) throws IOException {
    Files.walkFileTree(path, new SimpleFileVisitor<Path>() {

        final Logger logger = LoggerFactory.getLogger(this.getClass());
        @Override
        public FileVisitResult visitFile(Path file,
                BasicFileAttributes attrs) throws IOException {
            logger.warn("Deleting " + file.getFileName());
            Files.delete(file);
            logger.warn("DELETED " + file.getFileName());
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFileFailed(Path file, IOException exc) {
            // try to delete the file anyway, even if its attributes could
            // not be read, since delete-only access is theoretically possible
            // I NEVER SEE …
Run Code Online (Sandbox Code Playgroud)

file-io nio java-io java-7

15
推荐指数
2
解决办法
2万
查看次数

file.canWrite(); file.canRead(); file.canExceute(); 虽然我的文件/目录没有访问权限,但总是返回true

需要检查我使用的文件/目录的权限

 //filePath = path of file/directory access denied by user ( in windows )
 File file = new File(filePath);
 file.canWrite(); 
 file.canRead();
 file.canExecute();
Run Code Online (Sandbox Code Playgroud)

所有三个都返回true但无法删除任何文件/目录

java windows

5
推荐指数
1
解决办法
2853
查看次数

为什么不删除此文件?

我正在尝试使用删除文件 File.delete()

这是我的代码:

File stagingFile = new File(stagingPath,configFileName);
FileOutputStream fos = new FileOutputStream(stagingFile);
int c = 0;
while((c=input.read())!=-1){
    fos.write(c);
}
fos.flush();
fos.close();
input.close();
Run Code Online (Sandbox Code Playgroud)

执行一些操作后,我这样做:

boolean delete = stagingFile.delete();
Run Code Online (Sandbox Code Playgroud)

delete返回false.据我所知,我已经关闭了与之相关的所有处理程序stagingFile.我不确定为什么它不会被删除

java

2
推荐指数
1
解决办法
508
查看次数

标签 统计

java ×2

file-io ×1

java-7 ×1

java-io ×1

nio ×1

windows ×1