From d4936e8eeceae9a34c5bbd8556a1fcfe87bdff56 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Tue, 11 Sep 2018 21:42:44 +0200 Subject: [PATCH] fix issue with opening attachments with special characters in their name, closes #480 --- src/keepass2android/EntryActivity.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/keepass2android/EntryActivity.cs b/src/keepass2android/EntryActivity.cs index 00ea5427..c8e0a6fa 100644 --- a/src/keepass2android/EntryActivity.cs +++ b/src/keepass2android/EntryActivity.cs @@ -30,6 +30,7 @@ using Android.Widget; using Android.Preferences; using Android.Text.Method; using System.Globalization; +using System.Net; using Android.Content.PM; using Android.Webkit; using Android.Graphics; @@ -540,9 +541,12 @@ namespace keepass2android binaryDirectory = CacheDir.Path + File.Separator + AttachmentContentProvider.AttachmentCacheSubDir; string filepart = key; - if (writeToCacheDirectory) - filepart = filepart.Replace(" ", ""); - var targetFile = new File(binaryDirectory, filepart); + if (writeToCacheDirectory) + { + Java.Lang.String javaFilename = new Java.Lang.String(filepart); + filepart = javaFilename.ReplaceAll("[^a-zA-Z0-9.-]", "_"); + } + var targetFile = new File(binaryDirectory, filepart); File parent = targetFile.ParentFile;