Skip to content

Commit ab53601

Browse files
Deduplicate files names by adding a (#dedup-name) suffix on the file name (#620)
1 parent 5960d47 commit ab53601

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

android/src/main/java/vn/hunghd/flutterdownloader/DownloadWorker.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,28 @@ private void downloadFile(Context context, String fileURL, String savedDir, Stri
499499
private File createFileInAppSpecificDir(String filename, String savedDir) {
500500
File newFile = new File(savedDir, filename);
501501
try {
502+
int deduplicationFileNumber = 0;
503+
while (newFile.exists()) {
504+
deduplicationFileNumber++;
505+
int fileNameExtensionIndex = filename.lastIndexOf(".");
506+
String fileNameWithoutExtension;
507+
String fileExtension;
508+
if (fileNameExtensionIndex != -1) {
509+
fileNameWithoutExtension = filename.substring(0, fileNameExtensionIndex);
510+
if (fileNameExtensionIndex + 1 < filename.length()) {
511+
fileExtension = "." + filename.substring(fileNameExtensionIndex + 1);
512+
} else if (fileNameExtensionIndex + 1 == filename.length()) {
513+
fileExtension = ".";
514+
} else {
515+
fileExtension = "";
516+
}
517+
} else {
518+
fileNameWithoutExtension = filename;
519+
fileExtension = "";
520+
}
521+
newFile = new File(savedDir,
522+
fileNameWithoutExtension + "(" + deduplicationFileNumber + ")" + fileExtension);
523+
}
502524
boolean rs = newFile.createNewFile();
503525
if (rs) {
504526
return newFile;

0 commit comments

Comments
 (0)