[.NET Core][Tips] System.IO.Directory 編(1)

.NET Core
スポンサーリンク
スポンサーリンク

はじめに

本記事は、.NET Core における System.IO.Directory クラス の 逆引き Tips です。

今回は、以下を紹介します。

環境

.NET Core 2.2

ディレクトリを作成するには?

ディレクトリを作成するには、CreateDirectory メソッドを使用します。

  • CreateDirectory(string) 指定したパスにすべてのディレクトリとサブディレクトリを作成する。

     

以下に例を示します。

この例では /Users/hiroki/MyProjects/Dir1/Sub1 のディレクトリを作成します。

Windows の場合は ディレクトリの区切り文字は「¥」です。パスを文字列として扱う場合はエスケープ処理が必要となりますが、先頭に「@」をつけることでエスケープを省略することができます。

using System;
using System.IO;

namespace IOSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Windows の場合
            //var path = @"C:\MyProjects\Dir1\Sub1";

            //  Mac や Linux の場合 
            var path = "/Users/hiroki/MyProjects/Dir1/Sub1";

            // ディレクトリを作成する
            Directory.CreateDirectory(path);
        }
    }
}

ディレクトリを削除するには?

ディレクトリを削除するには Delete メソッドを使用します。

Delete(string) 指定したディレクトリを削除する。指定するディレクトリは書き込み可能 かつ 空である必要がある。
Delete(string, bool)

指定したディレクトリを削除する。

第1引数:削除したいディレクトリのパスを指定
第2引数:ディレクトリに含まれるファイルやサブディレクトリを削除したい場合に true を指定する


*指定したディレクトリが空でない場合でも削除をしたい場合は、このメソッドを使用する。

以下に例を示します。

この例では、/Users/hiroki/MyProjects/Dir1 を削除します。Dir1の下にサブディレクトリやファイルが存在する場合は「System.IO.IOException」の例外が発生します。

using System;
using System.IO;

namespace IOSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Windows の場合
            //var path = @"C:\MyProjects\Dir1\Sub1";

            //  Mac や Linux の場合 
            var path = "/Users/hiroki/MyProjects/Dir1";

            try
            {
                // ディレクトリを削除する
                Directory.Delete(path);
            }
            catch ( IOException  ex)
            {
                Console.WriteLine(ex.Message);
            }
           
        }
    }
}

次に引数が2つある Delete メソッドの使用例を示します。

この例では、/Users/hiroki/MyProjects/Dir1 と、その下にあるサブディレクトリとファイルを全て削除します。

削除対象のディレクトリが存在しない場合は「System.IO.DirectoryNotFoundException」の例外が発生します。

using System;
using System.IO;

namespace IOSample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Windows の場合
            //var path = @"C:\MyProjects\Dir1\Sub1";

            //  Mac や Linux の場合 
            var path = "/Users/hiroki/MyProjects/Dir1";

            try
            {
                // ディレクトリを削除する
                Directory.Delete(path, true);
            }
            catch ( IOException  ex)
            {
                Console.WriteLine(ex.Message);
            }
           
        }
    }
}

コメント

タイトルとURLをコピーしました