我的问题很简单。当我在android中创建一个临时文件(使用File#createTempFile),并将该文件移动到另一个目录(从/ cache到我的应用程序存储的/ files)时,该文件是否会持久存在?或者有没有办法让它持久?或者我是否必须复制并删除原始文件?
答案 0 :(得分:2)
您提供的createTempFile
变体需要指定文件的包含目录。如果该目录位于操作系统管理的临时文件存储区(例如类Unix系统中的/tmp
)中,则必须从临时层次结构移动(复制)到“常规”目录位置。但是,如果指定的目录已经在这样的地方之外,那么你没事。
File
类通过提供File#createTempFile(String prefix, String suffix)来帮助抽象出“OS托管临时文件存储”的概念,因此代码不需要知道(或弄清楚)适当的OS-temp目录(Java运行时为您做到了这一点)。此类文件是在OS管理的临时目录中创建的,该目录需要复制才能成为永久性目录。
另外,请考虑临时文件的“临时性”通常是它们在系统重启后无法生存(通常,它们甚至不能在关闭后继续存在)。因此,临时文件在操作系统生命期间已经是永久性的;如果你需要在重启时保持永久性,那么你要么首先在一个持久的位置创建你的temps,要么确保在那里移动(复制)它们。
但是,我想知道,他们首先以什么方式“临时”存档?