2013-03-19 26 views
2

我試圖將文件從一個目錄移動到另一個目錄,但是我收到以下錯誤消息「進程無法訪問該文件,因爲它正在被另一個進程使用」。如何找出哪個進程正在使用Java中的文件?

如何找出在Java中使用此文件的哪個進程?

我在Win 7

+2

Theres沒有平臺中立,Java特定的方式(afaik)。 – Perception 2013-03-19 21:19:24

+0

你是否特別需要從Java這樣做,或者是一種適合的命令行方式?如果是這樣,哪個平臺? – 2013-03-19 21:19:27

+0

另請參閱:http://stackoverflow.com/questions/300559/move-copy-file-operations-in-java?rq=1 – 2013-03-19 21:26:37

回答

1

如果一個命令行的做法是可行的,而且你是一個類似Linux系統上,然後lsof是你的朋友。大約有10極大數標誌爲lsof,但對於您的需求,它應該是簡單的:

lsof myfile 

你應該得到類似下面的輸出如下:

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME 
someprog 4660 foobar mem REG 253,0 58400 4522314 myfile 

編輯

你說你正在使用Windows。我不熟悉Windows命令行工具。但是,這裏有一個問題可能會有所幫助:How can I determine whether a specific file is open in Windows?

相關問題