I recently had the need to write a .NET console app which opens up a CSV file and does some stuff. This app loops through each row, downloads an image from the URL in column two
and saves it with a unique file name provided in column one
.
I want to remember this. So here it is.
using System; using System.IO; using System.Net; namespace Download_Images { class Program { static void Main(string[] args) { try { string root = @"C:"; Console.WriteLine("Press any key to start."); Console.ReadLine(); string[] records = File.ReadAllLines(root + "urls.csv"); string destination = root + @"images"; foreach (string record in records) { string[] fields = record.Split(','); string guid = fields[0]; string imageUrl = fields[1]; WebClient fileReader = new WebClient(); string newFile = destination + guid + ".jpg"; Console.WriteLine("Starting download: " + imageUrl); try { if (!File.Exists(newFile)) { fileReader.DownloadFile(imageUrl.Trim(), newFile); Console.WriteLine("File saved: " + newFile); } else { Console.WriteLine("File exists. Skipping. " + guid + ".jpg"); } } catch (Exception ex) { Console.WriteLine("Failed: " + ex.Message); if (ex.InnerException != null) { Console.WriteLine("Inner Exception: " + ex.InnerException.Message); } } Console.WriteLine(); } Console.WriteLine("All done. Press any key to exit."); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("There was an exception:"); Console.WriteLine(ex.Message); } } } }
Leave a Reply