Funktion för säkerhetskopiering
FSO

Här demonstrerar två tekniker, varav en funktion, för att löpande ta säkerhetskopior av viktiga filer.

Tipsen finns ej tillgängliga för hämtning.

Glöm inte av att ange referens till Microsoft Scripting Runtime - Läs mer här»


Ett enkelt sätt att ta säkerhetskopior på demonstreras av följande procedur:

 Sub Säkerhetskopiera()

  '© 2002 Alla rättigheter XL-Dennis

   Dim fsoObj As Scripting.FileSystemObject

   Set fsoObj = New Scripting.FileSystemObject

 

   With fsoObj

      If .FolderExists("c:\Mål") Then

         .DeleteFolder "c:\Mål", True

      End If

       .CopyFolder Source:="c:\Test", _

            Destination:=fsoObj.CreateFolder(Path:="c:\Mål").Path

   End With

    Set fsoObj = Nothing

End Sub  

 

Sub Sakerhets_Kopiering()

   '© 2002 Alla rättigheter XL-Dennis

   Dim stMapp As String, stMalMapp As String

    stMapp = "e:\Arbetsmaterial"

   stMalMapp = "f:\Backup\"

 

   If SakerhetsKopiering(stMapp, stMalMapp) Then

      MsgBox "Filerna kopierade."

   End If

 End Sub

  

Function SakerhetsKopiering(stMapp As String, stMalMapp As String) As Boolean

   '© 2002 Alla rättigheter XL-Dennis

   Dim fsoObj As New FileSystemObject

   Dim fsoFil As Scripting.File

   Dim i As Long  

   Set fsoObj = New Scripting.FileSystemObject

 

   With Application.FileSearch

      .NewSearch

      .LookIn = stMapp

      .SearchSubFolders = False

      .FileType = msoFileTypeExcelWorkbooks

      SakerhetsKopiering = .Execute(Sortorder:=msoSortOrderAscending)

 

      If Not SakerhetsKopiering Then

         MsgBox "Det fanns inga filer i mappen: " & stMapp

         SakerhetsKopiering = False

         Exit Function

      End If

 

      If Not fsoObj.FolderExists(stMalMapp) Then

         'Här anropas funktionen Skapa_Mappstruktur - Se Skapa Mappstruktur (FSO)

         Skapa_MappStruktur (stMalMapp)

      End If

 

      'Här kopieras filerna.

      For i = 1 To .FoundFiles.Count

         Set fsoFil = fsoObj.GetFile(.FoundFiles(i))

         fsoObj.CopyFile stMapp & "\" & fsoFil.Name, stMalMapp

      Next i

   End With


  
Set fsoFil = Nothing

   Set fsoObj = Nothing

End Function