【发布时间】:2016-06-12 22:05:55
【问题描述】:
我正在使用下载管理器下载文件。如果文件已下载,则下载管理器在文件名前附加“-1”。现在我想删除带有原始文件的旧文件,如果它已经存在,然后尝试重命名新文件。我在下载文件后执行此操作,以便在下载新文件之前不会删除旧文件。下面是我一直在使用的代码。
final File NewFile = new File(FileDirectory, FileNameWithoutExtension + "_" + DateMillis);
DownloadManager.Request request = new DownloadManager.Request(FileUri);
request.setDescription("Test Description");
request.setTitle("Download");
request.setAllowedOverRoaming(false);
request.setDestinationInExternalPublicDir("/MyFiles", FileNameWithoutExtension + "_" + DateMillis);
下面是广播接收器的代码。我没有把所有的代码。只是 onReceive 方法中的重要代码行。
String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
File LatestFileDownloaded = new File(uriString);
String tmpName = uri.getLastPathSegment();
// Here I am deleting all the extra files with the same name but different appended letters
File[] extraFiles = FileDirectory.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().contains(FileNameWithoutExtension + "_");
}
});
if (extraFiles != null) {
for (File extraFile : extraFiles) {
if (!extraFile.getName().equals(tmpName)) {
extraFile.delete();
}
}
}
在此处重命名文件的一段代码,
if (!LatestFileDownloaded .getName().equals(FileNameWithoutExtension + "_" + NodeDateMillis)) {
LatestFileDownloaded.renameTo(NewFile );
LatestFileDownloaded.delete();
}
例如,如果文件 MyFile_1410642204000(没有任何扩展名)存在并且下载管理器下载一个新文件,那么新文件将以 MyFile_1410642204000-1 的名称保存。现在 MyFile_1410642204000-1 应重命名为 MyFile_1410642204000 并应删除旧文件 MyFile_1410642204000-1 但不是。所以在 SDCard MyFile_1410642204000-1 上存在。
请检查为什么文件没有被重命名的代码以及我的代码有什么问题。谢谢
【问题讨论】:
标签: android