77

DirectoryInfo.Rename(To)またはFileInfo.Rename(To)メソッドがどこにも見つかりませんでした。だから、私は自分で書いたので、必要に応じて誰でも使用できるようにここに投稿します。それに直面しましょう。MoveToメソッドはやり過ぎであり、ディレクトリまたはファイルの名前を変更するだけの場合は、常に追加のロジックが必要になります。

public static class DirectoryExtensions
{
    public static void RenameTo(this DirectoryInfo di, string name)
    {
        if (di == null)
        {
            throw new ArgumentNullException("di", "Directory info to rename cannot be null");
        }

        if (string.IsNullOrWhiteSpace(name))
        {
            throw new ArgumentException("New name cannot be null or blank", "name");
        }

        di.MoveTo(Path.Combine(di.Parent.FullName, name));

        return; //done
    }
}
4

3 に答える 3

138

移動と名前の変更に違いはありません。単に呼び出す必要がありますDirectory.Move

一般に、単一の操作のみを実行している場合は、オブジェクトを作成する代わりに、クラスのstaticメソッドを使用する必要があります。FileDirectoryFileInfoDirectoryInfo

ファイルとディレクトリを操作する際のアドバイスについては、こちらを参照してください。

于 2010-01-07T22:00:55.383 に答える
73

あなたはそれを動かす必要があります:

Directory.Move(source, destination);
于 2010-01-07T22:00:16.227 に答える
17

1つはすでに存在します。System.IO名前空間の「移動」構文を乗り越えることができない場合。Microsoft.VisualBasic.FileIO名前空間FileSystem内に、とがすでに含まれている静的クラスがあります。RenameDirectoryRenameFile

SLaksが述べたように、これはとの単なるラッパーDirectory.MoveですFile.Move

于 2010-01-07T22:05:05.803 に答える