From c44b0de76041ef0f392d4dd44b25cb143970288a Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Fri, 28 Jan 2022 15:05:33 +0200 Subject: [PATCH] Prevent duplicate file names --- lib/ui/client/client_pdf.dart | 10 +++++++++- lib/ui/invoice/invoice_pdf.dart | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/ui/client/client_pdf.dart b/lib/ui/client/client_pdf.dart index ab7dc5608..9b34bd18a 100644 --- a/lib/ui/client/client_pdf.dart +++ b/lib/ui/client/client_pdf.dart @@ -368,8 +368,16 @@ class _ClientPdfViewState extends State { final directory = await (isDesktopOS() ? getDownloadsDirectory() : getApplicationDocumentsDirectory()); - final filePath = + String filePath = '${directory.path}${file.Platform.pathSeparator}$fileName'; + + if (file.File(filePath).existsSync()) { + final timestamp = + DateTime.now().millisecondsSinceEpoch; + filePath = filePath.replaceFirst( + '.pdf', '_$timestamp.pdf'); + } + final pdfData = file.File(filePath); await pdfData.writeAsBytes(_response.bodyBytes); diff --git a/lib/ui/invoice/invoice_pdf.dart b/lib/ui/invoice/invoice_pdf.dart index 9c56c315a..ada952faf 100644 --- a/lib/ui/invoice/invoice_pdf.dart +++ b/lib/ui/invoice/invoice_pdf.dart @@ -282,8 +282,16 @@ class _InvoicePdfViewState extends State { final directory = await (isDesktopOS() ? getDownloadsDirectory() : getApplicationDocumentsDirectory()); - final filePath = + String filePath = '${directory.path}${file.Platform.pathSeparator}$fileName'; + + if (file.File(filePath).existsSync()) { + final timestamp = + DateTime.now().millisecondsSinceEpoch; + filePath = filePath.replaceFirst( + '.pdf', '_$timestamp.pdf'); + } + final pdfData = file.File(filePath); await pdfData .writeAsBytes(_response.bodyBytes);