C# ディレクトリの存在チェックをして、ファイル一覧を取得する


スポンサーリンク

C#でファイルの名前やタイムスタンプなどの基本情報を取得するためには、FileInfoクラスを使います。
ディレクトリの情報を取得するのは、DirectoryInfoクラスのメソッドを使います。

名前空間の指定は、

using System.IO;

です。

public FileInfo(string fileName)
public DirectoryInfo(string directoryPath)

のように使います。
コンストラクタの引数に、ファイル名やディレクトリ名を渡すイメージです。


今回は、C:\tmpに以下のようなファイルを用意したので、このディレクトリ内のファイルの情報を取得してみます。

f:id:sho322:20141021090453j:plain

サンプルコードはこちらです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static int Main(string[] args)
        {
            FileInfo info = new FileInfo(@"C:\tmp\ファイルテスト.txt");

            //ファイル名を取得する
            Console.WriteLine(@"ファイルの名前は:" + info.FullName);

            //ファイルをコピーする
            info.CopyTo(@"C:\tmp\ファイルテスト3.txt");

            //ファイルの作成日時を取得する
            DateTime createDate = info.CreationTime;
            Console.WriteLine(@"ファイルテスト.txtの作成日時:" + createDate);

            //ディレクトリの情報をチェックする
            DirectoryInfo dInfo = new DirectoryInfo(@"C:\tmp");

            //そもそもディレクトリが存在するかの確認
            if (dInfo.Exists)
            {
                Console.WriteLine(@"C:\tmpは存在します!");
            }
            else
            {
                Console.WriteLine(@"\tmpは存在しません。");
            }

            //ディレクトリのファイル一覧を取得する
            Console.WriteLine(@"C:\tmpディレクトリのファイル一覧:");

            foreach (var file in dInfo.EnumerateFiles())
            {
                Console.WriteLine(file.FullName);
            }

            return 0;
        }
    }
}

これを実行すると、以下のように出力されます。

f:id:sho322:20141021090501j:plain

ディレクトリ内のファイルの情報を取得したり、存在チェック、ファイル名の取得、ファイルのコピーを行うことができました。

〔速攻入門〕 C#プログラミング すぐに現場で使える知識

〔速攻入門〕 C#プログラミング すぐに現場で使える知識