java file类delete()方法无法删除文件 10
代码如下System.out.println("exists?"+fileTxt[j].exists());//返回true文件存在booleanb=fileTxt[j]...
代码如下
System.out.println("exists?"+fileTxt[ j ].exists()); //返回true 文件存在
boolean b=fileTxt[ j ].delete();
System.out.println("delete?"+b); //false 文件删除失败
不是每次都删不掉,有时可以删除。web程序
txt文件可以新建、编辑,就是不能删除,我手动删除时提示:操作无法完成,因为文件已经在Java(TM) Platform SE binary打开。这是什么情况?最后一个bug了,大神帮忙啊。 展开
System.out.println("exists?"+fileTxt[ j ].exists()); //返回true 文件存在
boolean b=fileTxt[ j ].delete();
System.out.println("delete?"+b); //false 文件删除失败
不是每次都删不掉,有时可以删除。web程序
txt文件可以新建、编辑,就是不能删除,我手动删除时提示:操作无法完成,因为文件已经在Java(TM) Platform SE binary打开。这是什么情况?最后一个bug了,大神帮忙啊。 展开
7个回答
展开全部
通过fileTxt[ j ] ,看你是循环删除,你判断了文件是否存在,但是没有判断是否是文件夹、文件夹里是否还有文件
因为文件夹里有文件时,执行delete()是不成功的
此外,你在删除的文件,有可能正被其他人或程序打开,这个时候删除也不会成功
参考Java API的java.io.File类:
delete
public boolean delete()
删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则此目录必须为空才能删除。
因为文件夹里有文件时,执行delete()是不成功的
此外,你在删除的文件,有可能正被其他人或程序打开,这个时候删除也不会成功
参考Java API的java.io.File类:
delete
public boolean delete()
删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则此目录必须为空才能删除。
追问
txt文件可以新建、编辑,就是不能删除,我手动删除时提示:操作无法完成,因为文件已经在Java(TM) Platform SE binary打开。这是什么情况,最后一个bug了,大神帮忙啊。
追答
你操作的文件的流Strame没有关闭
检查你的代码,InputStrame、OutputStrame有没有关闭
不然通过File.delete方法删除文件会失败
很久没上百度了,回答不及时,不好意思
展开全部
java.io包是Java最开始对文件操作的实现类,里面有很多方法实现的并不完善。例如非阻塞IO、文件软链、硬链等。
后来Java提供了nio包,完善了一些io包的不足,提供了更多功能的本地、网络I/O操作,例如:非阻塞IO。
可以尝试调用java.nio.file.Files.delete(Path);,在删除文件出现问题时,可能会抛出NoSuchFileException,DirectoryNotEmptyException,IOException,SecurityException
可以更方便的定位无法删除文件的原因。而java.io.File.delete();方法不提供这些功能
java.nio.file.Path path = java.nio.file.Paths.get(fileTxt[j]);
java.nio.file.Files.delete(path);
后来Java提供了nio包,完善了一些io包的不足,提供了更多功能的本地、网络I/O操作,例如:非阻塞IO。
可以尝试调用java.nio.file.Files.delete(Path);,在删除文件出现问题时,可能会抛出NoSuchFileException,DirectoryNotEmptyException,IOException,SecurityException
可以更方便的定位无法删除文件的原因。而java.io.File.delete();方法不提供这些功能
java.nio.file.Path path = java.nio.file.Paths.get(fileTxt[j]);
java.nio.file.Files.delete(path);
更多追问追答
追问
需要从外界导入包吗?系统报错,找不到方法
追答
你用的JDK什么版本?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打开任务管理器,选到性能选项卡,下面有个资源模拟器点开,点开后选到CPU选项卡,
下面有个输入框的地方输入你的文件完整路径点检索
删不掉的时候可以看看有哪些地方在使用你这个文件
下面有个输入框的地方输入你的文件完整路径点检索
删不掉的时候可以看看有哪些地方在使用你这个文件
追问
explorer.exe 2996 File F:\myBox\cdy\notebook\·
explorer.exe 2996 File F:\myBox\cdy\notebook\·
javaw.exe 6004 File F:\myBox\cdy\notebook\我的心情\·
javaw.exe 6004 File F:\myBox\cdy\notebook\我的心情\·
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
该文件被其他程序打开没有关闭
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有的时候是被占用了,删除不了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |