玄関へお回り下さい。
ファイルの有無の確認及びコピー・移動・削除・ファイル名の変更 (9個)   (SNo.023)

1.ファイルの有無を確認する
2.File.Copy メソッド を使ってのファイルのコピー
3.FileInfo.MoveTo メソッド を使ってのファイルの移動
4.FileInfo.MoveTo メソッド をファイル名の変更
5.FileInfo.Delete メソッド を使ってのファイルの削除
6.FileCopy 関数を使ってのファイルのコピー
7.Rename 関数を使ってのファイルの移動
8.Rename 関数を使ってのファイル名の変更
9.Kill 関数を使ってのファイルの削除
使用コントロール Button1 〜 Button7
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
使用するファイルを準備しておいて下さい。 
1.ファイルの有無を確認する

Private Sub Button1_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button1.Click
'ファイルの有無を確認する
    'File.Exists メソッド
    '指定したファイルが存在するかどうかを確認します
   
Dim fn As String = "c:\Test.txt"
   
If System.IO.File.Exists(fn) Then
        MessageBox.Show("ファイル[" & fn & "]は存在します。")
   
Else
        MessageBox.Show("ファイル[" & fn & "]は存在しません。")
   
End If


   
If System.IO.File.Exists("c:\hogehoge.txt") Then
        MessageBox.Show("ファイル[" & fn & "]は存在します。")
   
Else
        MessageBox.Show("ファイル[c:\hogehoge.txt]は存在しません。")
   
End If
End Sub


(SNo.181)
但し、下記のようなパスの記入ミスの場合実際は存在しないのに、True が帰ってくるので注意が必要です。

(ファイルが存在するかどうかのExistsの動き.. - こむ 12/03-15:36 No.2699 で動作を確認)
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    '指定したファイルが存在するかどうかを確認します
    Debug.WriteLine(System.IO.File.Exists("c:\Test.txt"))   '結果 True
    'c: \Test.txt のような記入ミス(空白を含んだ)でも 有り と認定される
    Debug.WriteLine(System.IO.File.Exists("c: \Test.txt"))  '結果 True
End Sub

FileSystemObject オブジェクトの FileExists メソッドを使った場合は、False になります。
又、Win32 API関数の FindFirstFile を使っても、無しと認定されます。

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
    '指定したファイルが存在するかどうかを確認します
    Dim Fso As New Scripting.FileSystemObject
    Debug.WriteLine(Fso.FileExists("c:\Test.txt"))      '結果 True
    'こちらは、存在しないと判断される
    Debug.WriteLine(Fso.FileExists("c: \Test.txt"))     '結果 False
    System.Runtime.InteropServices.Marshal.ReleaseComObject(Fso)
    Fso = Nothing
End Sub

2.File.Copy メソッド を使ってのファイルのコピー

Private Sub Button2_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button2.Click
'File.Copy メソッド を使ってのファイルのコピー
    'File.Copy メソッド
    '既存のファイルを新しいファイルにコピーします。
    Dim SourceFile As String = "..\..\test.txt"
    Dim DestinationFile As String = "..\..\test001.txt"

    '既存のファイルを新しいファイルにコピーします。
    '同じ名前のファイルを上書きできません。
    System.IO.File.Copy(SourceFile, DestinationFile)

    '同じ名前のファイルの上書きが許可されます。
    System.IO.File.Copy(SourceFile, DestinationFile, True)
End Sub

3.FileInfo.MoveTo メソッド を使ってのファイルの移動

Private Sub Button3_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button3.Click
'FileInfo.MoveTo メソッド を使ってのファイルの移動
    'FileInfo.MoveTo メソッド
    '指定したファイルを新しい場所に移動します。
    'オプションで新しいファイル名を指定することもできます。
    Dim SourceFile As String = "..\..\test001.txt"
    Dim DestinationFile As String = "test001.txt"

    Dim fi As New System.IO.FileInfo(SourceFile)
    '移動先に同名のファイルが存在しなくて移動するファイルが存在するか確認
    If System.IO.File.Exists(DestinationFile) = False And _
                System.IO.File.Exists(SourceFile) Then
        'ファイルを移動
        fi.MoveTo(DestinationFile)
        'ファイル名の変更
    End If

'4.FileInfo.MoveTo メソッド を使ってのファイル名の変更

    If System.IO.File.Exists("..\..\test007.txt") = False And _
                System.IO.File.Exists(SourceFile) Then
        'ファイル名の変更
        System.IO.File.Move(SourceFile, "..\..\test007.txt")
    End If
End Sub

5.FileInfo.Delete メソッド を使ってのファイルの削除

Private Sub Button4_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button4.Click
'FileInfo.Delete メソッド を使ってのファイルの削除
    'FileInfo.Delete メソッド
    'ファイルを完全に削除します。
    'ファイルが存在しない場合は、このメソッドは何も実行しません
   
Dim DelFileName As String = "test001.txt"
    'ファイルの有無を確認
   
If System.IO.File.Exists(DelFileName) Then
        'ファイルを削除
       
Dim fi As New System.IO.FileInfo(DelFileName)
        fi.Delete()
   
End If
End Sub
  
6.FileCopy 関数を使ってのファイルのコピー

Private Sub Button5_Click(ByVal sender As System.Object, _
                         
ByVal e As System.EventArgs) Handles Button5.Click
'FileCopy 関数を使ってのファイルのコピー
    'FileCopy 関数
    'ファイルをコピーします。
    'ファイルが存在しなくてもエラーとならない。
    '現在開いているファイルに対して FileCopy 関数を
    '使用しようとすると、エラーが発生します。
   
Dim SourceFile As String = "..\..\test.txt"
   
Dim DestinationFile As String = "..\..\test001.txt"
    Microsoft.VisualBasic.FileSystem.FileCopy(SourceFile, DestinationFile)
End Sub

7.Rename 関数を使ってのファイルの移動
8.Rename 関数を使ってのファイル名の変更

Private Sub Button6_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button6.Click
'Rename 関数を使ってのファイルの移動
    'Rename 関数
    'ディスク ファイル、ディレクトリ、またはフォルダーの名前を変更します。
    'Rename 関数は、ファイルの名前を変更するのに使用しますが、
    '下記のように違うフォルダーを指定すると移動する事ができます。
    '移動先に同じファイル名があるとエラーが発生します。
    Dim SourceFile As String = "..\..\test001.txt"
    Dim DestinationFile As String = "test001.txt"
    '移動先に同名のファイルが存在しなくて移動するファイルが存在するか確認
    If System.IO.File.Exists(DestinationFile) = False And _
                System.IO.File.Exists(SourceFile) Then
        'ファイルを移動  同じフォルダー内でならファイル名の変更になる
        Microsoft.VisualBasic.FileSystem.Rename(SourceFile, DestinationFile)
    End If
End Sub

9.Kill 関数を使ってのファイルの削除

Private Sub Button7_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button7.Click
'Kill 関数を使ってのファイルの削除
    'Kill 関数
    'ディスクからファイルを削除します。
    Dim DelFileName As String = "test001.txt"
    'ファイルの有無を確認
    If System.IO.File.Exists(DelFileName) Then
        'ファイルを削除
        Microsoft.VisualBasic.FileSystem.Kill(DelFileName)
    End If
End Sub
 




2004/04/26
2005/12/05


VBレスキュー(花ちゃん)
VB.NET2003  VB2005