C# (.CS) によるファイル削除

C# (.CS) によるファイル削除
// 基本
// ファイルが存在しなくても例外は発生しない
System.IO.File.Delete( sPath );
// フォルダ構成を残したままファイルのみを削除する
static void DeleteFileInFolderStructure( string sPath )
{
var files = System.IO.Directory.EnumerateFiles( sPath );
foreach( string filePath in files )
{
// ファイル削除
System.IO.File.Delete( filePath );
}
var directories = System.IO.Directory.EnumerateDirectories( sPath );
foreach( string directoryPath in directories )
{
DeleteFileInFolderStructure( directoryPath );
}
}
// フォルダの中身を空にする
static void EmptyFolder( string sPath )
{
var files = System.IO.Directory.EnumerateFiles( sPath );
foreach( string filePath in files )
{
// ファイル削除
System.IO.File.Delete( filePath );
}
var directories = System.IO.Directory.EnumerateDirectories( sPath );
foreach( string directoryPath in directories )
{
EmptyFolder( directoryPath );
// フォルダ削除
System.IO.Directory.Delete( directoryPath );
}
}

発生する例外

状況 スローされる例外 メッセージ
存在しないファイルのパスを指定 - -
ワイルドカードを指定 System.ArgumentException パスに無効な文字が含まれています。
存在しないフォルダ・パスを指定 System.IO.DirectoryNotFoundException パス '●●●●' の一部が見つかりませんでした。
他のプロセスでオープンしているファイル/フォルダを指定 System.IO.IOException 別のプロセスで使用されているため、プロセスはファイル '●●●●' にアクセスできません。