1

ループ処理中の XML ファイルのコレクションがあり、エラーのあるファイルを別のファイルの場所に移動しています。ただし、system.io.file.move 関数を使用している場合、ファイル パスを移動する代わりにファイル名を指定する必要があります。同じ名前を保持したまま、ある場所から別の場所にファイルを移動する方法はありますか? 現在、実際には実行できない配列内のファイルの位置に基づいて名前を作成しています。

string ErrorPath = string.Format(@"{1}ErroredXml{0}.xml", errorLength, errorPaths);

//If type equals "add" then call add method else call update
if (Equals(type, typecomp))
{
    //pass object to data access layer to add record
    value.addNewGamePlay();

    if (value.getGamePlayID() == 0)
    {
        //move to error file
        System.IO.File.Move(value.getFile(), ErrorPath);
        errorLength++;
    }
}
4

2 に答える 2

8

を使用Path.GetFileNameして、元のファイル名を抽出し、それを使用して宛先パスを構築できますPath.Combine

var original = value.getFile();
var destinationPath = Path.Combine(errorPaths, Path.GetFileName(original));
于 2012-09-19T11:12:25.637 に答える
-1

Move メソッドでは、ファイルの名前を変更する必要はありません。2 番目の引数は、ファイルへの新しい名前ではなく、たとえばファイルへの新しいパスです。

第 1 引数 (sourceFileName) @"c:\temp\MyTest.txt"

第二引数 (destFileName) @"c:\temp2\MyTest.txt"

そのため、ファイル名は同じ「MyTest.txt」で、位置が変更されているだけです。

于 2012-09-19T11:16:35.897 に答える