3.フォルダーの作成・有無の確認及びコピー・移動・削除・フォルダー名の変更(35_Fld_03) (旧、SampleNo.033) |
1.フォルダー(ディレクトリ)の有無を確認する 2.フォルダー(ディレクトリ)を新規に作成する 3.フォルダー(ディレクトリ)をコピーする 4.フォルダー(ディレクトリ)を移動する 5.フォルダー(ディレクトリ)名を変更する 6.フォルダー(ディレクトリ)内のファイルを全てコピーする 7.フォルダー(ディレクトリ)を削除する |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 :存在しないフォルダーに対して実行するとエラーが発生する場合があります。 :テストする場合は、順番に最後まで実行して下さい。 このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.フォルダー(ディレクトリ)の有無を確認する |
Private rd As String Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load rd = System.IO.Path.GetPathRoot(Application.StartupPath()) End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'フォルダー(ディレクトリ)の有無を確認する Dim fn As String = rd & "Test" If System.IO.Directory.Exists(fn) Then MessageBox.Show("フォルダー[" & fn & "]は存在します。") Exit Sub End If End Sub |
2.フォルダー(ディレクトリ)を新規に作成する |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'フォルダー(ディレクトリ)を新規に作成する Dim fn As String = rd & "Test" If System.IO.Directory.Exists(fn) Then MessageBox.Show("フォルダー[" & fn & "]は存在します。") Exit Sub End If 'Directory.CreateDirectory メソッド 'path で指定したすべてのフォルダーとサブフォルダーを作成します。 System.IO.Directory.CreateDirectory(fn) '深い階層のフォルダーも一発で作成できます。 System.IO.Directory.CreateDirectory(fn & "\Test1\Test2\Test3\") End Sub |
3.フォルダー(ディレクトリ)をコピーする |
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'フォルダー(ディレクトリ)をコピーする Dim sourceFolder As String = rd & "test" Dim destinationFolder As String = rd & "test1\" 'VB2005 からの機能です。 My.Computer.FileSystem.CopyDirectory(sourceFolder, destinationFolder) End Sub |
4.フォルダー(ディレクトリ)を移動する |
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'フォルダー(ディレクトリ)を移動する Dim sourceFolder As String = rd & "test1\" Dim destinationFolder As String = rd & "test2\test1\" 'c:\test2\ は存在していて test1\ は存在しない事 '移動先のフォルダーを作成 System.IO.Directory.CreateDirectory(rd & "Test2") System.IO.Directory.Move(sourceFolder, destinationFolder) 'C:\test2\[test1\Test\Test1\Test2\Test3] []内が移動した部分 'destinationFolder は無くてもよい '最階層までを含めてその中のファイル事丸々移動します End Sub |
5.フォルダー(ディレクトリ)名を変更する |
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'フォルダー(ディレクトリ)名を変更する Dim oldName As String = rd & "test\" Dim newName As String = rd & "test3\" '同名のフォルダーがすでに存在していない事 '同じ階層内で移動すればフォルダー名の変更になる System.IO.Directory.Move(oldName, newName) '上記のサブフォルダー名を変更します Dim oldName1 As String = rd & "test2\test1\" Dim newName1 As String = rd & "test2\itiran\" System.IO.Directory.Move(oldName1, newName1) 'C:\Test2\itiran\Test1\Test2\Test3 End Sub |
6.フォルダー(ディレクトリ)内のファイルを全てコピーする |
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 'フォルダー(ディレクトリ)内のファイルを全てコピーする Dim srcePath As String = rd & "test3\" 'コピー元フォルダー Dim destPath As String = rd & "test2\" 'コピー先フォルダー Dim di As New System.IO.DirectoryInfo(srcePath) For Each fi As System.IO.FileInfo In di.GetFiles() fi.CopyTo(destPath & fi.Name, True) '上書き指定でコピー Next End Sub |
7.フォルダー(ディレクトリ)を削除する |
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click 'フォルダー(ディレクトリ)を削除する 'Directory.Delete メソッド 'フォルダーとその内容を削除します。 Try '指定したパスから空のフォルダーを削除します。 'この場合空でないとエラーが発生します System.IO.Directory.Delete(rd & "test2\") MessageBox.Show("空フォルダーを削除しました") Catch ex As Exception MessageBox.Show(ex.Message) '現在の例外を説明するメッセージを表示 'path のフォルダー、サブフォルダー、およびファイルを削除する System.IO.Directory.Delete(rd & "test2\", True) System.IO.Directory.Delete(rd & "test3\", True) MessageBox.Show("フォルダー及びフォルダー内をすべて削除しました") End Try End Sub |
検索キーワード及びサンプルコードの別名(機能名) |