From 5430f4bfc45f4ae2ead9ee45cdf9052df885d059 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Fri, 18 Jul 2014 00:34:34 +0200 Subject: [PATCH] Fixed a problem with long paths --- Duplicati/Library/Main/Database/LocalListDatabase.cs | 2 +- Duplicati/Library/Main/Database/LocalRestoreDatabase.cs | 2 +- Duplicati/Library/Snapshots/SnapshotUtility.cs | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Duplicati/Library/Main/Database/LocalListDatabase.cs b/Duplicati/Library/Main/Database/LocalListDatabase.cs index 23ca5593a..3eff82a01 100644 --- a/Duplicati/Library/Main/Database/LocalListDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalListDatabase.cs @@ -154,7 +154,7 @@ namespace Duplicati.Library.Main.Database if (filecount != foundfiles) { var oldlen = maxpath.Length; - maxpath = System.IO.Path.GetDirectoryName(maxpath); + maxpath = Library.Snapshots.SnapshotUtility.SystemIO.PathGetDirectoryName(maxpath); if (string.IsNullOrWhiteSpace(maxpath) || maxpath.Length == oldlen) maxpath = ""; } diff --git a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs index a4523454f..e7426f8df 100644 --- a/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs +++ b/Duplicati/Library/Main/Database/LocalRestoreDatabase.cs @@ -197,7 +197,7 @@ namespace Duplicati.Library.Main.Database if (filecount != foundfiles) { var oldlen = maxpath.Length; - maxpath = System.IO.Path.GetDirectoryName(maxpath); + maxpath = Duplicati.Library.Snapshots.SnapshotUtility.SystemIO.PathGetDirectoryName(maxpath); if (string.IsNullOrWhiteSpace(maxpath) || maxpath.Length == oldlen) maxpath = ""; } diff --git a/Duplicati/Library/Snapshots/SnapshotUtility.cs b/Duplicati/Library/Snapshots/SnapshotUtility.cs index bf2d4151b..e5760e543 100644 --- a/Duplicati/Library/Snapshots/SnapshotUtility.cs +++ b/Duplicati/Library/Snapshots/SnapshotUtility.cs @@ -41,5 +41,13 @@ namespace Duplicati.Library.Snapshots else return new WindowsSnapshot(folders, options); } + + public static ISystemIO SystemIO + { + get + { + return Utility.Utility.IsClientLinux ? (ISystemIO)new SystemIOLinux() : (ISystemIO)new SystemIOWindows(); + } + } } }