/// <inheritdoc/> public void DownloadFile(string url, string filePath) { ExecuteWithRetries(() => { _httpRequestExecutor.DownloadFile(url, filePath); return(true); }); }
private void DownloadDriverIfMissing( string version, string driverDestinationDirectoryPath, string driverDestinationFileName) { string driverDestinationFilePath = Path.Combine(driverDestinationDirectoryPath, driverDestinationFileName); if (!File.Exists(driverDestinationFilePath)) { if (!Directory.Exists(driverDestinationDirectoryPath)) { Directory.CreateDirectory(driverDestinationDirectoryPath); } string downloadDestinationDirectoryPath = Path.Combine(driverDestinationDirectoryPath, "dl"); if (!Directory.Exists(downloadDestinationDirectoryPath)) { Directory.CreateDirectory(downloadDestinationDirectoryPath); } Architecture architecture = ResolveArchitecture(); string downloadUrl = _setupStrategy.GetDriverDownloadUrl(version, architecture).AbsoluteUri; string downloadFileName = Path.GetFileName(downloadUrl); string downloadFilePath = Path.Combine(downloadDestinationDirectoryPath, downloadFileName); _httpRequestExecutor.DownloadFile(downloadUrl, downloadFilePath); try { ExtractDownloadedFile(downloadFilePath, driverDestinationFilePath); GrantFileExecutePermission(driverDestinationFilePath); } finally { Directory.Delete(downloadDestinationDirectoryPath, true); } } }