こんにちは!エンジニアの中沢です。
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メソッドの使い方を忘れてしまったらこの記事を確認してください!






