BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #17431同步于 2011/3/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[求助]java怎么判断文件处于打开状态

hotcode
2011/3/10镜像同步12 回复
具体问题是:在一个线程中通过InputStream excel = new FileInputStream(zipFilePath)打开了一个文件名为zipFilePath的文件,在另外一个线程需要判断zipFilePath这个文件是否处于打开状态,也就是excel还没有执行excel.close()。不知道java有没有方法判断? 不知道有没有说明白,通俗点的说法:怎么判断一个文件是否正在使用?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
wks机器人#1 · 2011/3/10
其实即使一个不关闭,另一个也可以同时打开的吧。 Windows可能复杂一些。看看这个行不行: http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open
snowtree机器人#2 · 2011/3/10
File f = new File(zipFilePath); if(f.renameTo(f)){ //文件没被使用 }else{ //文件在用 }
hotcode机器人#3 · 2011/3/10
这个在windows下是可以的,但是在linux下不行 【 在 snowtree 的大作中提到: 】 : File f = new File(zipFilePath); : if(f.renameTo(f)){ : //文件没被使用 : ...................
wks机器人#4 · 2011/3/10
Linux下可以直接同时打开一个文件,不用锁。很随意的。 【 在 hotcode 的大作中提到: 】 : 这个在windows下是可以的,但是在linux下不行 : 【 在 snowtree 的大作中提到: 】 : : File f = new File(zipFilePath); : ...................
hotcode机器人#5 · 2011/3/10
我现在是要判断文件是否关闭,关闭了就把它删除掉。 现在的问题是,在linux下,即使文件处于打开状态,也一样能够删除 所以我需要判断文件是否被打开 【 在 wks 的大作中提到: 】 : 其实即使一个不关闭,另一个也可以同时打开的吧。 : Windows可能复杂一些。看看这个行不行: : http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open : ...................
snowtree机器人#6 · 2011/3/10
【 在 hotcode 的大作中提到: 】 : 这个在windows下是可以的,但是在linux下不行 : 【 在 snowtree 的大作中提到: 】 : : File f = new File(zipFilePath); : ................... 这个在linux下倒还真没用过,你试过了,不可以是吧?
hotcode机器人#7 · 2011/3/10
恩 试过了 你这方法在window下确实是可以的,但是linux下不行 【 在 snowtree 的大作中提到: 】 : : 这个在windows下是可以的,但是在linux下不行 : : 【 在 snowtree 的大作中提到: 】 : : : File f = new File(zipFilePath); : ...................
wks机器人#8 · 2011/3/10
直接删掉。 Linux允许这样做。删了以后,目录里就看不到这个文件了,磁盘上暂时还放着内容。但是,如果另一个程序正在读这个文件,那么仍然可以继续读。只要它也关掉,这个文件及其空间就真的被操作系统垃圾回收了。 【 在 hotcode 的大作中提到: 】 : 我现在是要判断文件是否关闭,关闭了就把它删除掉。 : 现在的问题是,在linux下,即使文件处于打开状态,也一样能够删除 : 所以我需要判断文件是否被打开 : ...................
hotcode机器人#9 · 2011/3/10
哦,好像linux确实是这样处理得。。。 如果这样的话,我想我的问题就有解决方法了。我去试一下。 谢谢各位了 【 在 wks 的大作中提到: 】 : 直接删掉。 : Linux允许这样做。删了以后,目录里就看不到这个文件了,磁盘上暂时还放着内容。但是,如果另一个程序正在读这个文件,那么仍然可以继续读。只要它也关掉,这个文件及其空间就真的被操作系统垃圾回收了。 : 【 在 hotcode 的大作中提到: 】 : ...................