C# でディレクトリ内のすべてのファイルを削除する

Muhammad Maisam Abbas 2023年1月30日 2021年5月9日
  1. C# の DirectoryInfo.GetFiles() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する
  2. C# の DirectoryInfo.GetDirectories() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する
  3. C# の DirectoryInfo.EnumerateFiles() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する
  4. C# の DirectoryInfo.EnumerateDirectories() メソッドを使用して、ディレクトリ内のすべてのディレクトリを削除する
C# でディレクトリ内のすべてのファイルを削除する

このチュートリアルでは、C# のディレクトリ内のすべてのファイルを削除する方法について説明します。

C# の DirectoryInfo.GetFiles() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する

C# の DirectoryInfo.GetFiles() メソッドは、指定されたディレクトリ内のすべてのファイルを取得します。DirectoryInfo.GetFiles() メソッドは、引数としてパスを受け取り、そのディレクトリ内の各ファイルに関する情報を含む FileInfo クラスオブジェクトの配列を返します。DirectoryInfo.GetFiles() メソッドを使用して指定したディレクトリ内のすべてのファイルを取得し、FileInfo.Delete() メソッドを使用してファイルを削除できます。次のコード例は、C# の DirectoryInfo.GetFiles() および FileInfo.Delete() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する方法を示しています。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
            FileInfo[] files = di.GetFiles();
            foreach (FileInfo file in files)
            {
                file.Delete();
            }
            Console.WriteLine("Files deleted successfully");
        }
    }
}

出力:

Files deleted successfully

上記のコードでは、パス C:\Sample\ 内のすべてのファイルを、C# の DirectoryInfo.GetFiles() メソッドと FileInfo.Delete() メソッドを使用して削除しました。

C# の DirectoryInfo.GetDirectories() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する

C:\Sample\ディレクトリ内のすべてのサブディレクトリも削除する場合は、DirectoryInfo.GetDirectories() メソッドを使用して、C:\Sample\ ディレクトリ内のすべてのサブディレクトリを取得できます。DirectoryInfo.GetDirectories() メソッドは、すべてのサブディレクトリに関する情報を含む DirectoryInfo クラスオブジェクトの配列を返します。DirectoryInfo.Delete() メソッドを使用してサブディレクトリを削除できます。DirectoryInfo.Delete() メソッドの引数内に true を指定することにより、各サブディレクトリ内のすべてのサブディレクトリを削除することもできます。次のコード例は、C# の DirectoryInfo.GetDirectories() メソッドを使用して、ディレクトリ内のすべてのファイルとサブディレクトリを削除する方法を示しています。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
            FileInfo[] files = di.GetFiles();
            foreach (FileInfo file in files)
            {
                file.Delete();
            }
            DirectoryInfo[] subDirectories = di.GetDirectories();
            foreach (DirectoryInfo subDirectory in subDirectories)
            {
                subDirectory.Delete(true);
            }
            Console.WriteLine("Files and Sub-directories deleted successfully");
        }
    }
}

出力:

Files and Sub-directories deleted successfully

上記のコードでは、FileInfo.Delete() メソッドと DirectoryInfo.Delete() メソッドを使用して、C:\Sample ディレクトリ内のすべてのファイルとすべてのサブディレクトリを削除しました。

C# の DirectoryInfo.EnumerateFiles() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する

前のセクションで説明した方法はうまく機能しますが、同じことを行うためのより堅牢な方法があります。DirectoryInfo.EnumerateFiles() メソッドは、ディレクトリ内の各ファイルを反復処理します。このアプローチは、以前のアプローチよりもはるかに高速です。DirectoryInfo.EnumerateFiles() メソッドを foreach ループ内で使用して、各反復で FileInfo クラスのオブジェクトを取得できます。FileInfo.Delete() メソッドを使用して各ファイルを削除できます。次のコード例は、C# の DirectoryInfo.EnumerateFiles() メソッドを使用して、ディレクトリ内のすべてのファイルを削除する方法を示しています。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files
{
    class Program
    {
        static void method2()
        {

        }
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
            foreach (FileInfo file in di.EnumerateFiles())
            {
                file.Delete();
            }
            foreach (DirectoryInfo subDirectory in di.EnumerateDirectories())
            {
                subDirectory.Delete(true);
            }
            Console.WriteLine("Files deleted successfully");
        }
    }
}

出力:

Files deleted successfully

上記のコードは、C# の DirectoryInfo.EnumerateFiles() メソッドと FileInfo.Delete() メソッドを使用して、C:\Sample ディレクトリ内のすべてのファイルを削除します。

C# の DirectoryInfo.EnumerateDirectories() メソッドを使用して、ディレクトリ内のすべてのディレクトリを削除する

メインディレクトリ内のすべてのサブディレクトリも削除する場合は、C# で DirectoryInfo.EnumerateDirectories() メソッドを使用することもできます。DirectoryInfo.EnumerateDirectories() メソッドは、メインディレクトリ内の各サブディレクトリを反復処理するために使用されます。DirectoryInfo.EnumerateDirectories() メソッドを foreach ループ内で使用して、各反復で DirectoryInfo クラスのオブジェクトを取得できます。DirectoryInfo.Delete() メソッドを使用して各ファイルを削除できます。各サブディレクトリ内のすべてのサブディレクトリを削除する場合は、DirectoryInfo.Delete() メソッドのパラメータとして true を指定することもできます。次のコード例は、C# の DirectoryInfo.EnumerateFiles() メソッドを使用して、ディレクトリ内のすべてのファイルとサブディレクトリを削除する方法を示しています。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files
{
    class Program
    {
        static void method2()
        {

        }
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
            foreach (FileInfo file in di.EnumerateFiles())
            {
                file.Delete();
            }
            foreach (DirectoryInfo subDirectory in di.EnumerateDirectories())
            {
                subDirectory.Delete(true);
            }
            foreach (DirectoryInfo subDirectory in di.EnumerateDirectories())
            {
                subDirectory.Delete(true);
            }
            Console.WriteLine("Files and sub-directories deleted successfully");
        }
    }
}

出力:

Files and sub-directories deleted successfully

C# の FileInfo.Delete() メソッドと DirectoryInfo.Delete() メソッドを使用して、C:\Sample ディレクトリ内のすべてのファイルとすべてのサブディレクトリを削除しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Csharp File

関連記事 - Csharp Directory