File.deleteOnExit - 来自评论的Unix技巧

时间:2014-03-24 10:01:39

标签: android

以下是此方法的来源评论:

  

请注意,在Android上,应用程序生命周期不包括VM终止,        所以调用此方法不会确保删除文件。相反,你应该        使用最合适的:

 * Use a {@code finally} clause to manually invoke {@link #delete}.
 * Maintain your own set of files to delete, and process it at an appropriate point
    in your application's lifecycle.
 * Use the Unix trick of deleting the file as soon as all readers and writers have
   opened it. No new readers/writers will be able to access the file, but all existing
   ones will still have access until the last one closes the file.

任何人都可以向我解释什么是" Unix技巧"在它中提到以及如何使用它?

1 个答案:

答案 0 :(得分:1)

这个答案有一个很好的解释:https://stackoverflow.com/a/5219960/200508。基本上,这意味着"删除" Unix系统上的文件不会立即从磁盘上删除它;相反,它只是从它所在的目录中删除对该文件的引用。该文件实际上没有被删除,直到所有正在使用它的进程终止。因此,您可以打开一个临时文件并立即删除它,然后每当程序终止时它将被自动删除。