ディレクトリ名を変更する、ディレクトリを別のパスに移動する - C#

C#でディレクトリ名を変更する、または、ディレクトリを別のパスに移動するコードを紹介します。

概要

C#のプログラムでディレクトリ名を変更する場合は Directory オブジェクトの Move メソッドを利用します。

書式

Directrory.Move([変更元のディレクトリパス], [変更後のディレクトリのパス])
変更元と変更後のディレクトリパスを同じディレクトリにすれば、ディレクトリの名称変更になります。別のパスを設定するとディレクトリの移動になります。

記述例

例1

c:\test\folder ディレクトリにある、"MyFolder" ディレクトリの名称を "YourFolder" の名称に変更する記述です。
Directrory.Move("c:\test\folder\MyFolder", "c:\test\folder\YourFolder");

例2

c:\test\folder ディレクトリにある、"MyFolder" ディレクトリを "d:\storage" ディレクトリに同じ名称(MyFolder)で移動する記述です。
Directrory.Move("c:\test\folder\MyFolder", "d:\storage\MyFolder");

プログラム

UI

Windows Formアプリケーションで下図のフォームを作成します。
テキストボックス2つとボタンを1つ配置します。

コード

フォームのコードに下記のコードを記述します。button1のclickイベントを実装しています。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace DirectoryOperation
{
  public partial class FormRenameDirectory : Form
  {
    public FormRenameDirectory()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      string orgPath = textBox1.Text;
      string newPath = textBox2.Text;
      Directory.Move(orgPath, newPath);
    }
  }
}

解説

テキストボックスの入力内容を文字列型の変数に代入しています。テキストボックスのTextプロパティの値を直接 Moveメソッドに渡してもよいため、この処理は無くてもよいですが、コードを見やすくするため記述しています。
  string orgPath = textBox1.Text;
  string newPath = textBox2.Text;

DirectoryオブジェクトのMoveメソッドを呼び出して、ディレクトリの名称を変更します。 Moveメソッドの第一引数に、名称を変更したいディレクトリのフルパスを与えます。第二引数に、変更後のディレクトリの名称のフルパスを与えます。
  Directory.Move(orgPath, newPath);

実行結果

名称を変更するフォルダを準備します。今回は c:\data フォルダに test1 の名称でディレクトリを作成しました。


上記のプロジェクトを実行します。下図のウィンドウが表示されます。


テキストボックスに変更するフォルダ名のパスと、変更後のフォルダ名のパスを入力します。 変更前のフォルダのパスは c:\data\test1 とします。変更後のフォルダのパスは c:\data\test2 とします。


[変更]ボタンをクリックします。エラーや例外が発生しなければ、処理は完了です。


先ほどのフォルダをエクスプローラーで確認します。test1 フォルダが test2 に変更されていることが確認できます。


C#のプログラムからフォルダ名の変更ができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2021-07-12
iPentec all rights reserverd.