protected void ValidateSufficientDiskSpaceToCopyTarget(string target, string destination) { long availableDiskSpace = DiskSpaceHelper.GetAvailableFreeSpace(destination); long requiredDiskSpace = GetRequiredDiskSpace(target); if (requiredDiskSpace > availableDiskSpace) { throw new InsufficientDiskSpaceException(String.Format("Failed to copy target '{0}' to local temp directory: Not enough free disk space available! ({1} available, {2} required)", target, availableDiskSpace.ToPrettySize(), requiredDiskSpace.ToPrettySize())); } }
/// <summary> /// Validates that sufficient disk space exists to unpack a target archive. Throws exception if space is insufficient. /// </summary> protected void ValidateSufficientDiskSpaceToUnpack(string archive, string destinationDirectory) { long availableBytes = DiskSpaceHelper.GetAvailableFreeSpace(destinationDirectory); long requiredBytes = GetRequiredUnpackedSize(archive, destinationDirectory); if (availableBytes < requiredBytes) { throw new InsufficientDiskSpaceException(String.Format("Not enough free disk space available to unpack '{0}'! ({1} available, {2} required)", Path.GetFileName(archive), availableBytes.ToPrettySize(), requiredBytes.ToPrettySize())); } }
private static void ValidateSufficientDiskSpaceToCopyTargetLocally(LogsharkRequest request, ISet<Regex> whitelistPatterns) { long availableDiskSpace = DiskSpaceHelper.GetAvailableFreeSpace(GetUnpackTempDirectory()); long requiredDiskSpace = 0; if (request.Target.IsDirectory) { foreach (string requiredFile in GetRequiredFilesInDirectory(request, whitelistPatterns)) { requiredDiskSpace += DiskSpaceHelper.GetSize(requiredFile); } } else if (request.Target.IsFile) { requiredDiskSpace = DiskSpaceHelper.GetSize(request.Target); } if (requiredDiskSpace > availableDiskSpace) { throw new InsufficientDiskSpaceException(String.Format("Failed to copy target '{0}' to local temp directory: Not enough free disk space available! ({1} available, {2} required)", request.Target, availableDiskSpace.ToPrettySize(), requiredDiskSpace.ToPrettySize())); } }