Ä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