the title of the blog post is self explanatory, but what i want to highlight here is the significance of Path.Combine, most of the time i see code where we concatenate the folder name and the filename for ex:
var path =”C:\\testfolder\\filename.txt”;
this works as expected but imagine moving the code to a linux environment ?? this small line of code will break the app completely.
Path.Combine like Environment.Newline, sets up the path based on your respective OS, for linux it would /mnt/ss/filename.txt, for windows it would be c:\ss\filename.txt
await DownloadFile(http://sfasfsa.com/safdas/main.txt, Path.Combine( Environment.CurrentDirectory, "filename.txt"));
private static async Task DownloadFile(string uri, string outputPath)
{
if (!Uri.TryCreate(uri, UriKind.Absolute, out _))
throw new InvalidOperationException("URI is invalid.");
var stream = await _httpClient.GetStreamAsync(uri);
await using var fileStream = new FileStream(outputPath, FileMode.Create);
await stream.CopyToAsync(fileStream);
}