Fixed: Total free space on Linux

This commit is contained in:
Mark McDowall 2013-11-12 22:38:37 -08:00
parent 018b898a46
commit 9fcd422f29
1 changed files with 18 additions and 23 deletions

View File

@ -301,16 +301,9 @@ namespace NzbDrone.Common
if (OsInfo.IsLinux)
{
var drives = DriveInfo.GetDrives();
try
{
return
drives.Where(drive =>
drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
.OrderByDescending(drive => drive.Name.Length)
.First()
.AvailableFreeSpace;
return GetDriveInfoLinux(path).AvailableFreeSpace;
}
catch (InvalidOperationException e)
{
@ -469,27 +462,18 @@ namespace NzbDrone.Common
if (OsInfo.IsLinux)
{
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
try
{
try
{
if (drive.IsReady && path.StartsWith(drive.Name, StringComparison.CurrentCultureIgnoreCase))
{
return drive.TotalSize;
}
}
catch (InvalidOperationException e)
{
Logger.ErrorException("Couldn't get total space for " + path, e);
}
return GetDriveInfoLinux(path).TotalFreeSpace;
}
catch (InvalidOperationException e)
{
Logger.ErrorException("Couldn't get total space for " + path, e);
}
return null;
}
return DriveTotalSizeEx(root);
}
@ -552,5 +536,16 @@ namespace NzbDrone.Common
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();
}
}
}