[C#] ファイルをダウンロードしチェックする


はじめに

C#を利用して、Webサイトからファイルをダウンロードする方法をメモ。
ここでは、ダウンロード後にファイルサイズのチェックやファイルの存在有無などのチェックも行って居ます。

ファイルダウンロード

public class Program
{
       public static void Main(string[] args)
       {
            string url = "http://sample.com/sample.txt";

            // ダウンロードフォルダはアプリケーション実行フォルダを指定
            string downloadDir = Environment.CurrentDirectory;

            string downloadFilePath = Path.Combine(downloadDir, "sample.txt");

            // 拡張子をチェックする
            string ext = Path.GetExtention(url);
            if(ext != ".txt")
            {
                Console.WriteLine("The file extention is invalid.");
                return;   
            }

            using (WebClient wc = new WebClient()) 
            {
               try
               {
                   wc.DownloadFile(url, downloadFilePath); 
               }
               catch (Exception e)
               {
                    Console.WriteLine($"Exception occured. {e.Message}");
                    return;
               }
            }

            // ダウンロードしたファイルが存在するかどうか
            if(File.Exist(downloadFilePath) == true)
            {
                Console.WriteLine("Download file is found.");   

                // ファイルサイズチェック
                FileInfo fi = new FileInfo(downloadFile);
                if(fi.Length == 0)
                {
                    Console.WriteLine("Download file size is zero.");   
                }

                // テキストファイルかどうかチェックする
                using (FileStream file = new FileStream(downloadFilePath))
                {
                    byte[] byteData = new byte[1];
                    while (file.Read(byteData, 0, byteData.Length) > 0)
                    {
                        if(byteData[0] == 0)
                        {
                            Console.WriteLine("Download file is not text file."); 
                            return;
                        }
                    }
                }
            }
       }
}

ダウンロードする処理は「wc.DonwloadFile()」の一行で行えちゃいますが、その後にファイルのチェックをする必要があります。
今回は、ファイルの存在有無、ファイルサイズのチェック、拡張子のチェック、テキストファイルかどうかのチェックを行っています。
実際は、他にもチェックする必要がありますが、今回は、この4つのみメモしておきます。

C#

Posted by Kunisura