diff options
author | verhoek <30193551+verhoek@users.noreply.github.com> | 2018-11-26 20:34:52 +0300 |
---|---|---|
committer | verhoek <30193551+verhoek@users.noreply.github.com> | 2018-11-26 20:34:52 +0300 |
commit | 7128544a967e2fbe31a3b138c8e45e30a15d14a6 (patch) | |
tree | 9319a16095e287ab5c135fe30f1ef82db2ad7d2e /Duplicati/Library/Common/IO | |
parent | 94cf55a231f7e72e528bd2e2e97af808d125071c (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.cs | 1 | ||||
-rw-r--r-- | Duplicati/Library/Common/IO/SystemIOLinux.cs | 8 | ||||
-rw-r--r-- | Duplicati/Library/Common/IO/SystemIOWindows.cs | 17 |
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))
|