本日はC#の小ネタ枠です。
C#でディレクトリの生成/削除/移動を行う方法です。
System.IO.Directory
System.IO.Directoryの各種メソッドを利用してディレクトリの生成/削除/移動を行うことができます。
learn.microsoft.com
ディレクトリの生成にはCreateDirectoryメソッドを利用します。
var newDirectory = Path.Combine(DocumentFolderPath, "new"); System.IO.Directory.CreateDirectory(newDirectory);
ディレクトリの削除にはDeleteメソッドを利用します。
var targetDirectory = Path.Combine(DocumentFolderPath, "target"); System.IO.Directory.Delete(targetDirectory);
ディレクトリの移動にはMoveメソッドを利用します。
var targetDirectory = Path.Combine(DocumentFolderPath, "target"); var moveDirectory = Path.Combine(DocumentFolderPath, "move"); System.IO.Directory.Move(originDirectory, moveDirectory);
サンプルスクリプト
マイドキュメントフォルダでディレクトリの生成/削除/移動を行う以下のサンプルスクリプトを作成しました。
・DirectoryControl.cs
using System.IO; using UnityEngine; public class DirectoryControl : MonoBehaviour { private string DocumentFolderPath => System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); private string documentFolderPath; // フォルダを作成する [ContextMenu("CreateFolder")] public void CreateFolder() { // ディレクトリが存在しない場合はディレクトリを作成する var newDirectory = Path.Combine(DocumentFolderPath, "AlphaDirectory"); if (!Directory.Exists(newDirectory)) System.IO.Directory.CreateDirectory(newDirectory); Debug.Log($"Create Folder: {newDirectory}"); } // フォルダを削除する [ContextMenu("DeleteFolder")] public void DeleteFolder() { // ディレクトリが存在している場合はディレクトリを削除する var targetDirectory = Path.Combine(DocumentFolderPath, "AlphaDirectory"); if (Directory.Exists(targetDirectory)) System.IO.Directory.Delete(targetDirectory); Debug.Log($"Delete Folder: {targetDirectory}"); } // フォルダを移動(名前変更)する [ContextMenu("MoveFolder")] public void MoveFolder() { // ディレクトリが存在している場合はディレクトリを移動する var originDirectory = Path.Combine(DocumentFolderPath, "AlphaDirectory"); var moveDirectory = Path.Combine(DocumentFolderPath, "BetaDirectory"); if (Directory.Exists(originDirectory) && !Directory.Exists(moveDirectory)) System.IO.Directory.Move(originDirectory, moveDirectory); Debug.Log($"Rename Folder: {originDirectory}"); } }
各メソッドを実行するとマイドキュメントフォルダでディレクトリの生成/削除/移動を実行できます。