2008年06月21日

フォルダを移動する。

指定したフォルダを移動します。
指定したフォルダ内のファイルもそのまま移動させます。

System.IO.Directory.Move(SourceDir,DestDir)を使用します。

SourceDir・・・移動元フォルダ

DestDir・・・移動先フォルダ


>>>



>>>

System.IO.Directory.Move(SourceDir,DestDir)
で、移動元、移動先のフォルダをパスで指定します。

例えば、Eドライブ内の「test」フォルダ内にある「test2」フォルダを、Eドライブの「test1」フォルダ内に移動させるとします。

SourceDirでのディレクトリ指定とDestDirのディレクトリ指定に注意してください。

SourceDir・・・"e:\test\test2"

DestDir・・・"e:\test1\test2"

移動先のフォルダについては、移動されたときのフォルダまできちんとパス指定します。

移動先に既に同じ名前のフォルダが存在する場合は、「IOExceptionエラー」が発生し、停止します。


FolderBrowserDialogを使用して移動元フォルダ、移動先フォルダを選択して、フォルダを移動させる方法をご紹介します。

FolderBrowserDialogについては、以下をご覧下さい。

「フォルダを選択するダイアログ」

sample047-1.jpg
クリックすれば拡大します。

<コード>
=========================================
Public Class Form1
-----------------------------------------
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    FolderBrowserDialog1.ShowDialog()
    'FolderBrowserDialog1で選択されたフォルダを取得。
    TextBox1.Text = FolderBrowserDialog1.SelectedPath

  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    FolderBrowserDialog1.ShowDialog()
    'FolderBrowserDialog1で選択されたフォルダを取得。
    TextBox2.Text = FolderBrowserDialog1.SelectedPath

  End Sub
-----------------------------------------
  Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    '指定された移動先フォルダは、最後のフォルダ名まで
    '指定されていないため、フォルダ名を指定する必要が
    'ある。

    'まずは移動元のフォルダ名を取得する。
    Dim strDestDir As String
    'System.IO.Path.GetFileNameで最終フォルダ名
    'を取得できる。
    strDestDir = System.IO.Path.GetFileName(TextBox1.Text)

    '移動先にフォルダが存在するかどうかを確認する。
    'フォルダが存在していれば、メッセージボックスを
    '表示する。
    If System.IO.Directory.Exists(TextBox2.Text & "\" & strDestDir) Then

      MessageBox.Show("既にフォルダが存在します。", _
              "エラー", _
              MessageBoxButtons.OK, _
              MessageBoxIcon.Error, _
              MessageBoxDefaultButton.Button1)

      Exit Sub

    Else
      'フォルダを移動させる。
      System.IO.Directory.Move(TextBox1.Text, TextBox2.Text & "\" & strDestDir)

      MessageBox.Show("フォルダ移動完了しました。", _
              "完了", _
              MessageBoxButtons.OK, _
              MessageBoxIcon.Asterisk, _
              MessageBoxDefaultButton.Button1)

    End If

  End Sub
-----------------------------------------
End Class
=========================================





この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。