| File: test\Microsoft.ML.Tokenizers.Tests\Utils.cs | Web Access |
| Project: src\test\Microsoft.ML.Tokenizers.Data.Tests\Microsoft.ML.Tokenizers.Data.Tests.csproj (Microsoft.ML.Tokenizers.Data.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; using System.IO; using System.Net.Http; using System.Threading.Tasks; namespace Microsoft.ML.Tokenizers.Tests { public class Utils { public static async Task DownloadFile(string url, string fileName) { using (var client = new HttpClient() { Timeout = TimeSpan.FromMinutes(5) }) { await RetryHelper.ExecuteAsync(async () => { var response = await client.GetAsync(url); if (response.IsSuccessStatusCode) { var stream = await response.Content.ReadAsStreamAsync(); var fileInfo = new FileInfo(fileName); using (var fileStream = fileInfo.OpenWrite()) { await stream.CopyToAsync(fileStream); } } else { throw new Exception("File not found"); } }); } } public static void DeleteFile(string file) { if (File.Exists(file)) { try { File.Delete(file); } catch { } } } public static string CreateTemporaryFile(string extension) => Path.Combine(Path.GetTempPath(), Path.ChangeExtension(Guid.NewGuid().ToString(), extension)); public static string SaveEmbeddedResourceFile(string resourceName) { string fileName = CreateTemporaryFile("txt"); using Stream fileStream = File.Create(fileName); typeof(Utils).Assembly.GetManifestResourceStream(resourceName)!.CopyTo(fileStream); return fileName; } } }