そのため、名前を変更するためのルーチンを書き直しています。マイ フォルダのツリー構造は次のようになります。
Folder -> Folder(s) -> Folder(s) + ImageFile(s)
Session -> Location(s) -> Test(s) + Images
すべての場所には同じテストがあり、名前を変更する場所はすべて名前を変更する必要があります。また、すべての画像には、その画像と同じ名前の関連フォルダーがあります。そのため、イメージ "one"、"two"、"three" は、同じディレクトリ (場所) にフォルダー "one"、"two"、"three" をまとめて持ちます。
このコードを使用して名前を変更しています:
DirectoryInfo MainSessionFolder = new DirectoryInfo(FileStructure.CurrentSessionPath); // Main Session Folder
DirectoryInfo[] locations = MainSessionFolder.GetDirectories(); // Get all locations
foreach(var location in locations) // for every location
{
DirectoryInfo[] TestFolders = location.GetDirectories(); // get test folders in that location
foreach (var TestFolder in TestFolders) // for every test folder
{
if(SelectedTest.Name == TestFolder.Name) // check it it's what we want to rename
Directory.Move(TestFolder.FullName, TestFolder.Name.Replace(SelectedTest.Name, NewName)); // rename it
}
FileInfo[] AllFiles = location.GetFiles(); // get all files in that location
foreach (var ThisFile in AllFiles) // for every file in that location
{
if (SelectedTest.Name == ThisFile.Name) // check
File.Move(SelectedTest.Name, NewName); // rename
}
}
エラーが表示されますDirectoryInfo.move
(エラーではなくFileInfo.move
、エラーがファイルと言うので奇妙です)。
タイプ 'System.IO.IOException' の例外 ....
.. ファイルが既に存在する場合、ファイルを作成できません ..