スポンサーリンク

【C#】超簡単にファイル・フォルダの存在をチェックする方法!…といいつつ、隙あらば詳細に解説してしまう記事

C#でファイル、フォルダ(ディレクトリ)の存在をチェックする方法です。超簡単です。

スポンサーリンク

ファイル・フォルダの存在をチェックする

C#でファイル、もしくはフォルダ(ディレクトリ)の存在をチェックする方法は超簡単です。

結論から申し上げますと、Existsメソッドを使います。

  • ファイルの場合→System.IO.File.Existsメソッド
  • フォルダの場合→System.IO.Directory.Existsメソッド

ファイルとフォルダで、System.IO.FileクラスかSystem.IO.Directorクラスかの違いはありますが、Existsメソッドの機能は同じです。存在をチェックする機能です。

確認のためサンプルでこんな画面を用意しました。

左側がファイル存在チェック、右側がフォルダ存在チェックです。

仕様は、ファイル存在チェックの場合、

  • 上のテキストボックスにファイルパスを入力
  • ファイル存在チェックのボタンをクリック
  • 下のテキストボックスにチェック結果出力:
    ・存在する→「ありますねえ!」
    ・存在しない→「ないです。」

という簡単なものです。フォルダ存在チェックも同じ仕様です。

スポンサーリンク

ファイル存在チェックのサンプルコード

ファイル存在チェックの場合、System.IO.File.Existsメソッドを使用します。

File.Exists("ファイルのフルパスの文字列")

File.Existsメソッドの引数に、ファイルのフルパスの文字列を渡すだけです。

ファイル存在チェックのサンプルは以下。

//存在チェックに必要
using System;
using System.IO;

//ファイル存在チェック
private void cmdExistsFIle_Click(object sender, EventArgs e)
{
    //入力値チェック
    if(string.IsNullOrEmpty(txtFilePath.Text) == true)
    {
        txtResultFile.Text = "ファイルパスを入力してください。";
        return;
    }

    ///---ファイル存在チェック START ---///
    if (File.Exists(txtFilePath.Text))
    {
        txtResultFile.Text = "(ファイルが)ありますねえ!";
    }
    else
    {
        txtResultFile.Text = "(ファイルが)ないです。";
    }
    ///---ファイル存在チェック  END  ---///
}

たったこれだけです。一応、入力値チェックも入れておきました。これを実行してみます。

ファイルが存在する場合は、以下の結果になります。

チェック結果に表示されました。

そしてファイルが存在しない場合は、次の結果になります。

こちらもチェック結果に表示されました。

ファイルパスに書いてることは気にしないで下さい。

スポンサーリンク

フォルダ存在チェックのサンプルコード

フォルダ存在チェックの場合、System.IO.Directory.Existsメソッドを使用します。

Directory.Exists("フォルダのフルパスの文字列")

Directory.Existsメソッドの引数に、ファイルのフルパスの文字列を渡すだけです。

フォルダ存在チェックのサンプルは以下。

//存在チェックに必要
using System;
using System.IO;

private void cmdExistsDir_Click(object sender, EventArgs e)
{
    //入力値チェック
    if (string.IsNullOrEmpty(txtDirPath.Text) == true)
    {
        txtResultDir.Text = "フォルダパスを入力してください。";
        return;
    }

    ///---フォルダ存在チェック START ---///
    if (Directory.Exists(txtDirPath.Text))
    {
        txtResultDir.Text = "(フォルダが)ありますねえ!";
    }
    else
    {
        txtResultDir.Text = "(フォルダが)ないです。";
    }
    ///---フォルダ存在チェック  END  ---///
}

たったこれだけです。一応、入力値チェックも入れておきました。これを実行してみます。

フォルダが存在する場合は、以下の結果になります。

チェック結果に表示されました。

そしてフォルダが存在しない場合は、次の結果になります。

こちらもチェック結果に表示されました。

ファイルパスに書いてることは気にしないで下さい。

スポンサーリンク

補足

サンプルでは、

if (File.Exists(txtFilePath.Text))…

if (Directory.Exists(txtDirPath.Text))…

と、サラッと書いてますが、初心者のエンジニア向けにもう少し詳しくコードを書いてみます。

まず、Existsメソッドの戻り値はbool型なので、Existsメソッドを実行すると、trueかfalseで返って来ます。それを詳細に書くと、以下のロジックになります。

ファイル存在チェックの場合。

///---ファイル存在チェック START ---///
//File.Existsメソッドの場合
bool bFile = false;                         //Exists結果格納用変数
bFile = File.Exists(txtFilePath.Text);      //Existsの戻り値はbool型なので変数に代入

//ファイルが存在する場合
if (bFile == true)
{
    txtResultFile.Text = "(ファイルが)ありますねえ!";
}
//ファイルが存在しない場合
else if (bFile == false)
{
    txtResultFile.Text = "(ファイルが)ないです。";
}
///---ファイル存在チェック  END  ---///

フォルダ存在チェックの場合。

///---フォルダ存在チェック START ---///
//Directory.Existsメソッドの場合
bool bDir = false;                         //Exists結果格納用変数
bDir = Directory.Exists(txtDirPath.Text);      //Existsの戻り値はbool型なので変数に代入

//フォルダが存在する場合
if (bDir == true)
{
    txtResultDir.Text = "(フォルダが)ありますねえ!";
}
//フォルダが存在しない場合
else if (bDir == false)
{
    txtResultDir.Text = "(フォルダが)ないです。";
}
///---フォルダ存在チェック  END  ---///

少しステップ数が増えましたが、サンプルコードと同じ結果になります。

慣れてくるとわざわざ変数にExistsメソッドの結果を代入する必要はありませんが、初心者のエンジニアだったり、動きを詳細に見たい人は補足のソースコードを参考にして下さい。

スポンサーリンク

参考サイト

File.Exists(String) メソッド (System.IO) | Microsoft Docs

Directory.Exists(String) メソッド (System.IO) | Microsoft Docs

スポンサーリンク

鉄道記事も書いてます!

ちょっとリフレッシュして鉄道記事も読んでみませんか?

鉄道記事バックナンバーはこちら↓

鉄道コム投稿記事一覧ページ