Hugo Palma
2009-03-02 18:46:23 UTC
Hi all,
a have a very simple use case where i want to get all the file in a
directory, iterate over them a delete a few.
My code is something like:
SmbFile folder = new SmbFile("smb://myfolder");
for (SmbFile file : folder.listFiles()) {
// do something
file.delete();
}
It seems that if that "do something" doesn't include calling the
"getInputStream" method on the file everything goes fine. But if it does i
get the following error on the delete operation:
jcifs.smb.SmbException: The process cannot access the file because it is
being used by another process.
at
jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:522)
at
jcifs.smb.SmbTransport.send(SmbTransport.java:622)
at
jcifs.smb.SmbSession.send(SmbSession.java:239)
at
jcifs.smb.SmbTree.send(SmbTree.java:109)
at
jcifs.smb.SmbFile.send(SmbFile.java:718)
at
jcifs.smb.SmbFile.delete(SmbFile.java:2342)
at jcifs.smb.SmbFile.delete(SmbFile.java:2286)
Any idea why this is happening ? Clearly some resource if being left open
but i don't see any close method.
Thanks
a have a very simple use case where i want to get all the file in a
directory, iterate over them a delete a few.
My code is something like:
SmbFile folder = new SmbFile("smb://myfolder");
for (SmbFile file : folder.listFiles()) {
// do something
file.delete();
}
It seems that if that "do something" doesn't include calling the
"getInputStream" method on the file everything goes fine. But if it does i
get the following error on the delete operation:
jcifs.smb.SmbException: The process cannot access the file because it is
being used by another process.
at
jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:522)
at
jcifs.smb.SmbTransport.send(SmbTransport.java:622)
at
jcifs.smb.SmbSession.send(SmbSession.java:239)
at
jcifs.smb.SmbTree.send(SmbTree.java:109)
at
jcifs.smb.SmbFile.send(SmbFile.java:718)
at
jcifs.smb.SmbFile.delete(SmbFile.java:2342)
at jcifs.smb.SmbFile.delete(SmbFile.java:2286)
Any idea why this is happening ? Clearly some resource if being left open
but i don't see any close method.
Thanks