Difference between Files#delete(Path) and File#delete()

后端 未结 2 675
情深已故
情深已故 2020-12-01 18:00

I\'m using Windows-7 with java 7 update 6 and found this weird (at least to me) behavior -
I have two files E:\\delete1.txt and E:\\delete2.txt

2条回答
  •  伪装坚强ぢ
    2020-12-01 19:01

    As discussed here - The issue is that java.io.File has many oddities, on Windows in particular. In this case it resets the file attributes before it deletes the file so this is why it does not fail as might be expected. It is behavior that dates back >10 years and so would be risky to change now. It has several other oddities like this, just one of the reason why it wasn't re-implemented to use the new API.

    If we try to delete the file from command window then windows throws the same (Access denied) error but file gets deleted from explorer window. It appears the File#delete() has a wrong implementation and new Files#delete(Path) should be preferred instead.

提交回复
热议问题