使用ACTION_SEND意图(使用额外的EXTRA_STREAM)将文件附加到电子邮件时,电子邮件应用程序是否将附加文件复制到其自己的位置?我的应用程序创建了一个文件并将其附加到电子邮件中,但这可能会发生多次,我希望能够在不再需要时删除此文件(因此它不会使用垃圾数据充斥用户的存储空间)。电子邮件意图启动后,文件是否可以安全删除?
答案 0 :(得分:2)
为了始终清理用户的存储空间(SDCard),您可以检查文件的lastModified()日期以获取给定年龄并删除它。
例如:
private void checkTempFiles() {
Log.d(TAG, "--> checkTempFiles");
// Check if directory 'YourTempDirectory' exists and delete all files
String tempDirectoryPath = Environment.getExternalStorageDirectory()
.toString() + "/YourTempDirectory";
File dir = new File(tempDirectoryPath);
// Delete all existing files older than 24 hours
if (dir.exists() && dir.isDirectory()) {
String[] fileToBeDeleted = dir.list();
for (int i = 0; i < fileToBeDeleted.length; i++) {
File deleteFile = new File(tempDirectoryPath + "/"
+ fileToBeDeleted[i]);
Long lastmodified = deleteFile.lastModified();
if (lastmodified + 86400000L < System.currentTimeMillis()) {
if (deleteFile.isFile()) {
deleteFile.delete();
}
}
}
}
}
答案 1 :(得分:0)
不,这不安全。如果您尚未将其保存到媒体库。