【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メソッドのさらに詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

【C#入門】ファイルとフォルダの存在チェックをするExistsメソッド
更新日 : 2019年5月13日

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

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

次のプログラムでは、同名のフォルダがあるかどうかを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メソッドの使い方を忘れてしまったらこの記事を確認してください!

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー