VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 フォルダー関係のメニュー
1.フォルダー(ディレクトリ)の属性を取得及び設定・除去する
2.フォルダー(ディレクトリ)のタイムスタンプを取得及び設定する
3.フォルダーの作成・有無の確認及びコピー・移動・削除・フォルダー名の変更
4.フォルダー(ディレクトリ)に関するパス操作色々
5.システムの特別なフォルダーのフォルダーパスを取得
6.指定フォルダー以下のサブフォルダー数を取得及びフォルダー名を列挙
7.
8.
9.
10.
11.
12.
 .
20.その他、当サイト内に掲載のフォルダーに関するサンプル


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

このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。