Fixed: Total free space on Linux

pull/3113/head
Mark McDowall 11 years ago
parent 018b898a46
commit 9fcd422f29

@ -301,16 +301,9 @@ namespace NzbDrone.Common
if (OsInfo.IsLinux) if (OsInfo.IsLinux)
{ {
var drives = DriveInfo.GetDrives();
try try
{ {
return return GetDriveInfoLinux(path).AvailableFreeSpace;
drives.Where(drive =>
drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
.OrderByDescending(drive => drive.Name.Length)
.First()
.AvailableFreeSpace;
} }
catch (InvalidOperationException e) catch (InvalidOperationException e)
{ {
@ -468,28 +461,19 @@ namespace NzbDrone.Common
throw new DirectoryNotFoundException(root); throw new DirectoryNotFoundException(root);
if (OsInfo.IsLinux) if (OsInfo.IsLinux)
{
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{ {
try try
{ {
if (drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase)) return GetDriveInfoLinux(path).TotalFreeSpace;
{
return drive.TotalSize;
}
} }
catch (InvalidOperationException e) catch (InvalidOperationException e)
{ {
Logger.ErrorException("Couldn't get total space for " + path, e); Logger.ErrorException("Couldn't get total space for " + path, e);
} }
}
return null; return null;
} }
return DriveTotalSizeEx(root); return DriveTotalSizeEx(root);
} }
@ -552,5 +536,16 @@ namespace NzbDrone.Common
return 0; return 0;
} }
private DriveInfo GetDriveInfoLinux(string path)
{
var drives = DriveInfo.GetDrives();
return
drives.Where(drive =>
drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
.OrderByDescending(drive => drive.Name.Length)
.First();
}
} }
} }
Loading…
Cancel
Save