Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/duplicati/duplicati.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorverhoek <30193551+verhoek@users.noreply.github.com>2018-11-26 20:34:52 +0300
committerverhoek <30193551+verhoek@users.noreply.github.com>2018-11-26 20:34:52 +0300
commit7128544a967e2fbe31a3b138c8e45e30a15d14a6 (patch)
tree9319a16095e287ab5c135fe30f1ef82db2ad7d2e /Duplicati/Library/Common/IO
parent94cf55a231f7e72e528bd2e2e97af808d125071c (diff)
Fix bug that accidentally also handles directories besides files in file backend.
Diffstat (limited to 'Duplicati/Library/Common/IO')
-rw-r--r--Duplicati/Library/Common/IO/ISystemIO.cs1
-rw-r--r--Duplicati/Library/Common/IO/SystemIOLinux.cs8
-rw-r--r--Duplicati/Library/Common/IO/SystemIOWindows.cs17
3 files changed, 25 insertions, 1 deletions
diff --git a/Duplicati/Library/Common/IO/ISystemIO.cs b/Duplicati/Library/Common/IO/ISystemIO.cs
index 8fe034b19..a96ba1893 100644
--- a/Duplicati/Library/Common/IO/ISystemIO.cs
+++ b/Duplicati/Library/Common/IO/ISystemIO.cs
@@ -69,6 +69,7 @@ namespace Duplicati.Library.Common.IO
DateTime GetCreationTimeUtc(string path);
DateTime GetLastWriteTimeUtc(string path);
IEnumerable<string> EnumerateFileSystemEntries(string path);
+ IEnumerable<string> EnumerateFiles(string path);
IEnumerable<string> EnumerateDirectories(string path);
void SetMetadata(string path, Dictionary<string, string> metdata, bool restorePermissions);
diff --git a/Duplicati/Library/Common/IO/SystemIOLinux.cs b/Duplicati/Library/Common/IO/SystemIOLinux.cs
index fecdf5f5f..dc3efca36 100644
--- a/Duplicati/Library/Common/IO/SystemIOLinux.cs
+++ b/Duplicati/Library/Common/IO/SystemIOLinux.cs
@@ -121,6 +121,12 @@ namespace Duplicati.Library.Common.IO
return Directory.EnumerateFileSystemEntries(path);
}
+ public IEnumerable<string> EnumerateFiles(string path)
+ {
+ return Directory.EnumerateFiles(path);
+ }
+
+
public string PathGetFileName(string path)
{
return Path.GetFileName(path);
@@ -308,7 +314,7 @@ namespace Duplicati.Library.Common.IO
{
var fileInfo = new FileInfo(path);
return new FileEntry(fileInfo.Name, fileInfo.Length, fileInfo.LastAccessTime, fileInfo.LastWriteTime);
- }
+ }
}
}
diff --git a/Duplicati/Library/Common/IO/SystemIOWindows.cs b/Duplicati/Library/Common/IO/SystemIOWindows.cs
index f6d641b64..f9bcefb68 100644
--- a/Duplicati/Library/Common/IO/SystemIOWindows.cs
+++ b/Duplicati/Library/Common/IO/SystemIOWindows.cs
@@ -302,6 +302,23 @@ namespace Duplicati.Library.Common.IO
return r;
}
+ public IEnumerable<string> EnumerateFiles(string path)
+ {
+ if (!IsPathTooLong(path))
+ {
+ try { return System.IO.Directory.EnumerateFiles(path); }
+ catch (System.IO.PathTooLongException) { }
+ catch (System.ArgumentException) { }
+ }
+
+ var r = Alphaleonis.Win32.Filesystem.Directory.GetFiles(PrefixWithUNC(path));
+ for (var i = 0; i < r.Length; i++)
+ r[i] = StripUNCPrefix(r[i]);
+
+ return r;
+ }
+
+
public string PathGetFileName(string path)
{
if (!IsPathTooLong(path))