Ändra namn, flytta och ta bort filer & mappar

Här demonstrerar flera tekniker för att ändra namn, flytta och ta bort filer och mappar. För de som har erfarenhet med att hantera filer och mappar i DOS känner igen sig i kommandona.

Dessa tips finns ej att tillgå för hämtning.

Option Explicit

' Syfte: Demonstrerar fil- och mapphantering

' © 2002 Alla rättigheter XL-Dennis

Sub AndraNamn_Flytta_TaBort_Fil()

   'Ändra namn.

   Name "c:\xl\XL-Dennis\Test.xls" As "c:\xl\XL-Dennis\XL-Dennis.xls"  

   MsgBox "Filnamnet ändrat."
 

    'Kopiera fil.

   FileCopy "c:\xl\XL-Dennis\XL-Dennis.xls", "c:\XL-Dennis.xls"

   MsgBox "Filen kopierad."
 

    'Ta bort fil.

   Kill "c:\xl\XL-Dennis\XL-Dennis.xls"

   MsgBox "Filen borttagen."
 

    'Flytta fil och ändra filnamnet.

   Name "c:\XL-Dennis.xls" As "c:\xl\XL-Dennis\Test.xls"

   MsgBox "Filen flyttad och filnamnet ändrat."  

End Sub

 

Sub AndraNamn_Flytta_TaBort_Mapp()

   'Skapa mapp.

   MkDir "c:\Test"

   MsgBox "Mappen skapad."
 

    'Ändra mappnamn.

   Name "c:\Test" As "c:\Dennis"

   MsgBox "Mappnamnet ändrat."
 

   'Ta bort mapp - Den måste vara tom annars måste först alla filer tas bort.

   RmDir "c:\Dennis"

   MsgBox "Mappen borttagen"

End Sub
 

Sub TaBort_Filer_Mapp()

   'Ta bort samtliga filer i en mapp.

   Kill "c:\Dennis\*.*"

   MsgBox "Alla filer borttagna."

   'Ta bort mappen.

   RmDir "c:\Dennis"

   MsgBox "Mappen borttagen."

End Sub

 

Istället för att radera filer kan vi flytta dessa till papperskorgen. För att lösa det krävs det användning av Windows API såsom nedanstående exempel visas.

Option Explicit
' Syfte: Demonstrerar fil- och mapphantering

' © 2002 Alla rättigheter XL-Dennis

' Här deklareras Windows API-funktionen mm.

Private Type SHFILEOPSTRUCT

   hwnd As Long

   wFunc As Long

   pFrom As String

   pTo As String

   fFlags As Integer

   fAnyOperationsAborted As Boolean

   hNameMappings As Long

   lpszProgressTitle As String

End Type

Public FileOperation As SHFILEOPSTRUCT

Private Const FO_DELETE = &H3

Private Const FOF_ALLOWUNDO = &H40

Private Declare Function SHFileOperation Lib "shell32.dll" Alias _

      "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

 

Sub Flytta_Fil_Papperskorg()

   'Anropar och skickar textsträngen till funktionen

   Fil_Papperskorg "c:\XL-Dennis.xls"

End Sub

Function Fil_Papperskorg(stFil As String)

   Dim lnReturn As Long

   With FileOperation

      .wFunc = FO_DELETE

      .pFrom = stFil

      .fFlags = FOF_ALLOWUNDO

   End With

   lnReturn = SHFileOperation(FileOperation)

End Function

 

Istället för att radera mappen och dess innehåll kan vi flytta dessa till papperskorgen. För att lösa det krävs det användning av Windows API såsom nedanstående exempel visas.

OBS! Både undermappar och filer tas bort samtidigt.

Option Explicit

' Syfte: Demonstrerar fil- och mapphantering

' © 2002 Alla rättigheter XL-Dennis

' Här deklareras Windows API-funktionen mm. 

Private Type SHFILEOPSTRUCT

   hwnd As Long

   wFunc As Long

   pFrom As String

   pTo As String

   fFlags As Integer

   fAnyOperationsAborted As Long

   hNameMappings As Long

   lpszProgressTitle As String

End Type

 

Public FileOperation As SHFILEOPSTRUCT

Private Const FO_DELETE = &H3&

Private Const FOF_ALLOWUNDO = &H40&

Private Const FOF_NOCONFIRMATION = &H10&

Private Declare Function SHFileOperation Lib "shell32.dll" Alias _

      "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

 

Sub Flytta_Mapp_Papperskorg()

   'Anropar och skickar textsträngen till funktionen.

   Mapp_Papperskorg "c:\XLDennis"

End Sub

Function Mapp_Papperskorg(stMapp As String)

   Dim lnReturn As Long

   With FileOperation

      .hwnd = 0

      .wFunc = FO_DELETE

      .pFrom = stMapp

      .fFlags = FOF_NOCONFIRMATION + FOF_ALLOWUNDO

      .lpszProgressTitle = ""

   End With

   lnReturn = SHFileOperation(FileOperation)

End Function