【C#入門】フォルダ(ディレクトリ)を作成する方法(同名に連番も解説)

こんにちは!エンジニアの中沢です。

C#にはフォルダ(ディレクトリ)を作成するための「CreateDirectoryメソッド」があります。

フォルダの作成時に同名のフォルダがないかを確認したり、同名のフォルダある場合には連番を振ることもできます。

この記事では、

・CreateDirectoryメソッドとは
・フォルダを作成する方法

という基本的な内容から、

・フォルダが既に存在するかチェックする方法
・同名のフォルダがある場合に連番を振る方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、Existsメソッドのさまざまな使い方をわかりやすく解説します!

目次

CreateDirectoryメソッドとは

CreateDirectoryメソッドは、フォルダ(ディレクトリ)を作成するときに使います。

CreateDirectoryメソッドは、「Directoryクラス」と「DirectoryInfoクラス」で用意されていますが、その違いは「Directoryクラス」が静的メソッドで、「DirectoryInfoクラス」がインスタンスメソッドだということで、それ以外はほとんど同じように使うことができます。

フォルダを作成する方法

Directoryクラスでフォルダを作成

ここでは、Directoryクラスでフォルダを作成する方法を解説します。

フォルダを作成するには、DirectoryクラスのCreateDirectoryメソッドの引数に作成するフォルダのパスを指定します。

次のプログラムで確認してみましょう。

using System;
using System.IO;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string path = @"E:\Samurai";

            Directory.CreateDirectory(path);

            Console.WriteLine("フォルダを作成しました");
            Console.ReadKey();
        }
    }
}

実行結果:

フォルダを作成しました

このようにしてフォルダを作成することができました。

DirectoryInfoクラスでフォルダを作成

ここでは、DirectoryInfoクラスでフォルダを作成する方法を解説します。

DirectoryInfoクラスでフォルダを作成するには、コンストラクタの引数に作成するフォルダのパスを指定します。

その後、インスタンスメソッドのCreateメソッドでフォルダの作成します。

次のプログラムで確認してみましょう。

using System;
using System.IO;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string path = @"E:\Samurai";

            DirectoryInfo di = new DirectoryInfo(path);
            di.Create();

            Console.WriteLine("フォルダを作成しました");
            Console.ReadKey();
        }
    }
}

実行結果:

フォルダを作成しました

DirectoryInfoクラスでもフォルダを作成することができました。

フォルダが既に存在するかチェックする方法

フォルダが既に存在するかチェックするには、Existsメソッドを使います。

Existsメソッドは引数にチェックしたいフォルダのパスを指定します。

次のプログラムで確認してみましょう。

using System;
using System.IO;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string path = @"E:\Samurai";

            if (Directory.Exists(path))
            {
                Console.WriteLine("存在します");
            }
            else
            {
                Console.WriteLine("存在しません");
            }

            Console.ReadKey();
        }
    }
}

実行結果:

存在します

このようにしてフォルダの存在チェックをすることができました。

Existsメソッドのさらに詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

同名のフォルダがある場合に連番を振る方法

ここでは、同名のフォルダがある場合に連番を振る方法を解説します。

次のプログラムでは、同名のフォルダがあるかどうかをExistsメソッドで確認し、同名のフォルダがある場合にはパスの最後に「 (1)」や「 (2)」などの数字をつけていきます。

プログラムを見て確認してみましょう。

using System;
using System.IO;

namespace Sample
{
    class Sample
    {
        public static void CreateDirectory(string path)
        {
            int i = 1;
            var newPath = path;
            while (Directory.Exists(newPath))
            {
                newPath = $"{path} ({i++})";
            }
            Directory.CreateDirectory(newPath);
        }

        static void Main()
        {
            string path = @"E:\Samurai";

            CreateDirectory(path);

            Console.WriteLine("フォルダを作成しました");
            Console.ReadKey();
        }
    }
}

実行結果:

フォルダを作成しました

まとめ

いかがでしたか?

今回はCreateDirectoryメソッドでフォルダを作成する方法を解説しました。

CreateDirectoryメソッドはDirectoryクラスとDirectoryInfoクラスの両方にあるので、状況に応じて使い分けてださいね。

もし、CreateDirectoryメソッドの使い方を忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次