VB.NET Tips - ファイル上書きコピー

指定されたコピー元ファイルの存在を確認し、ファイルの FileInfo を取得し、 FileInfoのファイル長が0より大きい場合に、指定されたコピー先ファイルに上書きコピーを行う関数です。

コピー処理は、System.IO.File.Copy により上書きフラグをONして処理を行います。

System.IO.FileInfo クラスについて

■コンストラクタ
Public Sub New ( fileName )
fileName:
    ファイルのドライブ名からの完全パス名または相対ファイル名。
■プロパティ抜粋
・Length       (Long)   :現在のファイルのサイズをバイト単位で取得します。
・Name         (String) :ファイルの名前を取得します。ファイル拡張子が含まれています。
・FullName     (String) :ファイルのフルパス名を取得します。
・DirectoryName(String) :ディレクトリの絶対パスを表す文字列。
・Extension    (String) :ファイルの拡張子部分を表す文字列を取得します。

ファイル上書きコピー

    ''' -----------------------------------------------------------------------------
    ''' 
    ''' ファイル上書きコピー
    ''' 
    ''' コピー元ファイルフルパス名
    ''' コピー先ファイルフルパス名
    ''' True:正常終了, False:エラー
    ''' コピー元ファイルが存在しない場合、処理無し
    ''' -----------------------------------------------------------------------------
    Public Function CopyFileOverwrite(ByVal astrSrcFilePath As String,
                                      ByVal astrDesFilePath As String) As Boolean
        '戻り値初期化
        CopyFileOverwrite = False
        Try
            'コピー元ファイル存在確認
            If System.IO.File.Exists(astrSrcFilePath) = False Then
                '入力用ファイルが存在しない場合は、OKとする
                Return True
            End If

            Dim fileinfo As New System.IO.FileInfo(astrSrcFilePath)
            'ファイルサイズ取得
            If fileinfo.Length = 0 Then
                'サイズ0の場合は、処理無しで正常戻り
                Return True
            End If

            'コピー元入力用ファイルからコピー先ファイル上書きコピー
            System.IO.File.Copy(astrSrcFilePath, astrDesFilePath, True)
            '正常終了
            Return True

        Catch ex As Exception
            'エラー処理が必要な場合は、ここに記述する
        End Try
    End Function