■ ディレクトリの有無
* Directory.Exists() を使用する
■ ディレクトリ内のファイル総数
実現方法1
* Directory.GetFiles を利用して実装するサンプル
http://dobon.net/vb/dotnet/file/getfiles.html
を参考
string[] files = System.IO.Directory.GetFiles( @"C:\test", "*", System.IO.SearchOption.AllDirectories); int total = files.Length;
実現方法2
* DirectoryInfo.GetFiles()のCount()を利用して実装するサンプル
DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\test") int totalfileNo = directoryInfo.GetFiles().Count();
■ ディレクトリの作成
* Directory.CreateDirectory() を使用する
■ ディレクトリの削除
* Directory.Delete()又は、DirectoryInfo.Delete() を使用する
サンプル
指定したディレクトリおよびその配下のサブディレクトリ、ファイルを根こそぎ削除#region ディレクトリ削除処理 /// <summary> /// 指定したディレクトリ、その配下のファイルおよびサブディレクトリ、全てを削除する。 /// </summary> /// <param name="folderPath">削除するディレクトリのパス</param> /// <remarks> /// [参考URL]http://jeanne.wankuma.com/tips/csharp/directory/deletesurely.html /// </remarks> public void DeleteDirectory(string folderPath) { if (Directory.Exists(folderPath)) { this.DeleteDirectory(new System.IO.DirectoryInfo(folderPath)); } } public void DeleteDirectory(System.IO.DirectoryInfo directoryInfo) { // すべてのファイルの読み取り専用属性を解除する foreach (System.IO.FileInfo fileInfo in directoryInfo.GetFiles()) { if ((fileInfo.Attributes & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) { fileInfo.Attributes = System.IO.FileAttributes.Normal; } // ファイルを削除する fileInfo.Delete(); } // サブディレクトリ内の読み取り専用属性を解除する (再帰) foreach (System.IO.DirectoryInfo subDirectoryInfo in directoryInfo.GetDirectories()) { this.DeleteDirectory(subDirectoryInfo); } // このディレクトリの読み取り専用属性を解除する if ((directoryInfo.Attributes & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) { directoryInfo.Attributes = System.IO.FileAttributes.Directory; } // このディレクトリを削除する directoryInfo.Delete(true); } #endregion