C#でディレクトリ名を変更する、または、ディレクトリを別のパスに移動するコードを紹介します。
C#のプログラムでディレクトリ名を変更する場合は Directory オブジェクトの Move
メソッドを利用します。
Directrory.Move([変更元のディレクトリパス], [変更後のディレクトリのパス])
変更元と変更後のディレクトリパスを同じディレクトリにすれば、ディレクトリの名称変更になります。別のパスを設定するとディレクトリの移動になります。
c:\test\folder ディレクトリにある、"MyFolder" ディレクトリの名称を "YourFolder" の名称に変更する記述です。
Directrory.Move("c:\test\folder\MyFolder", "c:\test\folder\YourFolder");
c:\test\folder ディレクトリにある、"MyFolder" ディレクトリを "d:\storage" ディレクトリに同じ名称(MyFolder)で移動する記述です。
Directrory.Move("c:\test\folder\MyFolder", "d:\storage\MyFolder");
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#のプログラムからフォルダ名の変更ができました。