0

そのため、名前を変更するためのルーチンを書き直しています。マイ フォルダのツリー構造は次のようになります。

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' の例外 ....
.. ファイルが既に存在する場合、ファイルを作成できません ..

4

1 に答える 1