删除下载目录中的文件
Delete a file in download directory
几个月前有人帮助我创建了一个应用程序,我正在尝试自己改进它,但它并不像我想要的那么容易。
我想删除已在下载目录中创建的文件。
我将此文件夹用作缓存文件夹来共享我的应用程序中存储的声音。
这是共享选项的示例(效果很好,除了我不明白我应该把 outputFile.delete();
行放在哪里...)
case R.id.partage:
File outputFile = new File("");
InputStream is = getResources().openRawResource(((Sound) adapter.getItem(index)).getMpsound());
try {
byte[] buffer = new byte[is.available()];
is.read(buffer);
File outputDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
outputFile = new File(outputDir, getResources().getResourceEntryName(((Sound) adapter.getItem(index)).getMpsound()) + ".mp3");
OutputStream os = new FileOutputStream(outputFile);
os.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", outputFile));
share.putExtra(Intent.EXTRA_TEXT, "\"" + ((Sound) adapter.getItem(index)).getTitre_show() + "\" shared by my app");
startActivity(Intent.createChooser(share, "Share Sound File"));
return true;
有什么想法吗?
由于您正在与其他应用共享您的文件,因此在其他应用读取您的文件之前,您无法删除您的文件。并且没有任何信息可以告诉您其他人已经阅读了您的文件。可以批量删除。例如,您可以将当前时间前 1 小时及以上共享的所有文件一起删除。但是为此,您必须创建您的文件,以便您应该能够跟踪它们。您可以将所有文件保存在下载目录中的一个公共文件夹中,以便于跟踪这些文件。如果您需要批量删除的逻辑和代码方面的帮助,请告诉我。
几个月前有人帮助我创建了一个应用程序,我正在尝试自己改进它,但它并不像我想要的那么容易。
我想删除已在下载目录中创建的文件。
我将此文件夹用作缓存文件夹来共享我的应用程序中存储的声音。
这是共享选项的示例(效果很好,除了我不明白我应该把 outputFile.delete();
行放在哪里...)
case R.id.partage:
File outputFile = new File("");
InputStream is = getResources().openRawResource(((Sound) adapter.getItem(index)).getMpsound());
try {
byte[] buffer = new byte[is.available()];
is.read(buffer);
File outputDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
outputFile = new File(outputDir, getResources().getResourceEntryName(((Sound) adapter.getItem(index)).getMpsound()) + ".mp3");
OutputStream os = new FileOutputStream(outputFile);
os.write(buffer);
} catch (IOException e) {
e.printStackTrace();
}
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
share.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", outputFile));
share.putExtra(Intent.EXTRA_TEXT, "\"" + ((Sound) adapter.getItem(index)).getTitre_show() + "\" shared by my app");
startActivity(Intent.createChooser(share, "Share Sound File"));
return true;
有什么想法吗?
由于您正在与其他应用共享您的文件,因此在其他应用读取您的文件之前,您无法删除您的文件。并且没有任何信息可以告诉您其他人已经阅读了您的文件。可以批量删除。例如,您可以将当前时间前 1 小时及以上共享的所有文件一起删除。但是为此,您必须创建您的文件,以便您应该能够跟踪它们。您可以将所有文件保存在下载目录中的一个公共文件夹中,以便于跟踪这些文件。如果您需要批量删除的逻辑和代码方面的帮助,请告诉我。