VB.Net語言 復制、刪除文件


VB.NET版
Imports System.IO
Imports System.IO.Directory
 
    ' ======================================================
    ' 實現一個靜態方法將指定文件夾下面的所有內容copy到目標文件夾下面
    ' 如果目標文件夾為只讀屬性就會報錯。
    ' ======================================================
    Public Shared Sub CopyDir(ByVal srcPath As String, ByVal aimPath As String)
        Try
            ' 檢查目標目錄是否以目錄分割字符\結束,如果不是則添加之
            If aimPath(aimPath.Length - 1) <> Path.DirectorySeparatorChar Then
                aimPath += Path.DirectorySeparatorChar
            End If
 
            '判斷源目錄是否存在,不存在則退出.
            If (Not Directory.Exists(srcPath)) Then Exit Sub
 
            ' 判斷目標目錄是否存在如果不存在則新建之
            If (Not Directory.Exists(aimPath)) Then Directory.CreateDirectory(aimPath)
 
            ' 得到源目錄的文件列表,該里面是包含文件以及目錄路徑的一個數組
            ' 如果你指向copy目標文件下面的文件而不包含目錄請使用下面的方法
            ' string[] fileList = Directory.GetFiles(srcPath);
            Dim fileList() As String = Directory.GetFileSystemEntries(srcPath)
 
            ' 遍歷所有的文件和目錄
 
            For Each FileName As String In fileList
                ' 先當作目錄處理如果存在這個目錄就遞歸Copy該目錄下面的文件
                If Directory.Exists(FileName) Then
                    CopyDir(FileName, aimPath + Path.GetFileName(FileName))
                    ' 否則直接Copy文件
                Else
                    File.Copy(FileName, aimPath + Path.GetFileName(FileName), True)
                End If
            Next
 
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
    End Sub
 
 
    ' ======================================================
    ' 實現一個靜態方法將指定文件夾下面的所有內容Detele
    ' 測試的時候要小心*作,刪除之后無法恢復。
    ' ======================================================
    Public Shared Sub DeleteDir(ByVal aimPath As String)
        Try
 
            ' 檢查目標目錄是否以目錄分割字符結束如果不是則添加之
            If (aimPath(aimPath.Length - 1) <> Path.DirectorySeparatorChar) Then
                aimPath += Path.DirectorySeparatorChar
            End If
 
            '判斷待刪除的目錄是否存在,不存在則退出.
            If (Not Directory.Exists(aimPath)) Then Exit Sub
 
            ' 得到源目錄的文件列表,該里面是包含文件以及目錄路徑的一個數組
            ' 如果你指向Delete目標文件下面的文件而不包含目錄請使用下面的方法
            ' string[] fileList = Directory.GetFiles(aimPath);
            Dim fileList() As String = Directory.GetFileSystemEntries(aimPath)
 
            ' 遍歷所有的文件和目錄
            For Each FileName As String In fileList
                If (Directory.Exists(FileName)) Then
                    ' 先當作目錄處理如果存在這個目錄就遞歸Delete該目錄下面的文件
                    DeleteDir(aimPath + Path.GetFileName(FileName))
                Else
                    ' 否則直接Delete文件
                    File.Delete(aimPath + Path.GetFileName(FileName))
                End If
            Next
            '刪除文件夾
            System.IO.Directory.Delete(aimPath, True)
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
    End Sub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM