ディレクトリ名を変更する、ディレクトリを別のパスに移動する - 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を愛用