忍者ブログ

VB.NET-TIPS などプログラミングについて

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) :ファイルの拡張子部分を表す文字列を取得します。

ファイル上書きコピー

    ''' -----------------------------------------------------------------------------
    ''' 
    ''' ファイル上書きコピー
    ''' 
    ''' <param name="astrSrcFilePath">コピー元ファイルフルパス名</param>
    ''' <param name="astrDesFilePath">コピー先ファイルフルパス名</param>
    ''' 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
PR

コメント

コメントを書く