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:37:05 +0300
committerverhoek <30193551+verhoek@users.noreply.github.com>2018-11-26 20:37:05 +0300
commit94f34ce5a19b542b6b2e63c0f8e1aea9baf2ebe5 (patch)
tree46812ca4b7a84324e3995233273484018c1f933e /Duplicati/Library/Common/IO
parent7128544a967e2fbe31a3b138c8e45e30a15d14a6 (diff)
Removal of boiler plate code put into static helper.
Diffstat (limited to 'Duplicati/Library/Common/IO')
-rw-r--r--Duplicati/Library/Common/IO/SystemIOWindows.cs22
1 files changed, 16 insertions, 6 deletions
diff --git a/Duplicati/Library/Common/IO/SystemIOWindows.cs b/Duplicati/Library/Common/IO/SystemIOWindows.cs
index f9bcefb68..84398407d 100644
--- a/Duplicati/Library/Common/IO/SystemIOWindows.cs
+++ b/Duplicati/Library/Common/IO/SystemIOWindows.cs
@@ -288,18 +288,28 @@ namespace Duplicati.Library.Common.IO
return null;
}
- public IEnumerable<string> EnumerateFileSystemEntries(string path)
+ private static T TryNativeFirst<T>(Func<string, T> nativeIOFunc, Func<string, T> alternativeIOFunc, string path)
{
if (!IsPathTooLong(path))
- try { return System.IO.Directory.EnumerateFileSystemEntries(path); }
+ try { return nativeIOFunc(path); }
catch (System.IO.PathTooLongException) { }
catch (System.ArgumentException) { }
- var r = Alphaleonis.Win32.Filesystem.Directory.GetFileSystemEntries(PrefixWithUNC(path));
- for (var i = 0; i < r.Length; i++)
- r[i] = StripUNCPrefix(r[i]);
+ return alternativeIOFunc(path);
+ }
- return r;
+ public IEnumerable<string> EnumerateFileSystemEntries(string path)
+ {
+ IEnumerable<string> alphaFS(string _path)
+ {
+ var r = Alphaleonis.Win32.Filesystem.Directory.GetFileSystemEntries(PrefixWithUNC(_path));
+ for (var i = 0; i < r.Length; i++)
+ r[i] = StripUNCPrefix(r[i]);
+
+ return r;
+ }
+
+ return TryNativeFirst(System.IO.Directory.EnumerateFileSystemEntries, alphaFS, path);
}
public IEnumerable<string> EnumerateFiles(string path)