meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
filesystemobject [2016/10/08 17:58] – Externe Bearbeitung 127.0.0.1 | filesystemobject [2018/07/28 11:23] (aktuell) – michael | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | [[# | + | ===== FileSystemObject ===== |
- | ====== FileSystemObject | + | |
- | Eins der wichtigsten Objekte für Skripte. Es ist __das__ Standardobjekt in fast jedem Skript. Daher wird der Zugriff meist aus Performance-Gründen global definiert.\\ | + | Eins der wichtigsten Objekte für Skripte. Es ist __das__ Standardobjekt in fast jedem Skript. Daher wird der Zugriff meist aus Performance-Gründen global definiert.\\ |
- | ====== Definieren | + | |
- | | + | ==== Definieren ==== |
+ | //VBScript:// | ||
+ | |||
+ | <code JavaScript [enable_line_numbers=" | ||
Dim fso | Dim fso | ||
Set fso = CreateObject(" | Set fso = CreateObject(" | ||
- | JScript:\\ | + | </ |
+ | |||
+ | //JScript:// | ||
+ | |||
+ | <code JavaScript [enable_line_numbers=" | ||
var fso = new ActiveXObject(" | var fso = new ActiveXObject(" | ||
- | ====== Zerstören ====== | + | </ |
- | Es empfiehlt sich Objekte bei Beendigung frei zu geben. Da es meist global definiert wird, sollte gewährleistet sein, dass bei Programmbeendigung das Objekt frei gegeben wird. Beispiel siehe: [[/ | + | |
+ | ==== Zerstören ==== | ||
+ | |||
+ | Es empfiehlt sich Objekte bei Beendigung frei zu geben. Da es meist global definiert wird, sollte gewährleistet sein, dass bei Programmbeendigung das Objekt frei gegeben wird. Beispiel siehe: [[/ | ||
+ | |||
+ | //VBScript:// | ||
+ | <code VBScript [enable_line_numbers=" | ||
Set fso = Nothing | Set fso = Nothing | ||
- | ====== Pfadfunktionen | + | </ |
- | ===== Laufwerk bestimmen | + | |
- | | + | ===== Pfadfunktionen ===== |
+ | ==== Laufwerk bestimmen ==== | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sDrive = fso.GetDriveName(sFullPath) | sDrive = fso.GetDriveName(sFullPath) | ||
- | ===== Verzeichnis extrahieren | + | </ |
- | | + | |
+ | ==== Verzeichnis extrahieren ==== | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sDir = fso.GetParentFolderName(sFullPath) | sDir = fso.GetParentFolderName(sFullPath) | ||
- | ===== Dateiname extrahieren | + | </ |
- | | + | |
+ | ==== Dateiname extrahieren ==== | ||
+ | |||
+ | Ermittelt Dateinamen mit Dateiendung | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sFileName = fso.GetFileName(sFullPath) | sFileName = fso.GetFileName(sFullPath) | ||
- | ===== Basisnamen extrahieren ===== | + | </ |
- | | + | |
+ | ==== Basisnamen extrahieren ==== | ||
+ | |||
+ | Ermittelt Dateinamen, jedoch ohne Dateityp | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sBaseName = fso.GetBaseName(sFullPath) | sBaseName = fso.GetBaseName(sFullPath) | ||
- | ===== Erweiterung extrahieren ===== | + | </ |
- | | + | |
+ | ==== Erweiterung extrahieren ==== | ||
+ | |||
+ | Ermittelt Dateiendung/ | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sExt = fso.GetExtensionName(sFullPath) | sExt = fso.GetExtensionName(sFullPath) | ||
- | ===== Pfade kombinieren | + | </ |
- | Setzt zwei Teilpfade zu einem kompletten Pfad zusammen\\ | + | |
+ | ==== Pfade kombinieren ==== | ||
+ | |||
+ | Setzt zwei Teilpfade zu einem kompletten Pfad zusammen | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sResultPath = fso.BuildPath(sDir, | sResultPath = fso.BuildPath(sDir, | ||
- | ===== Absoluten Pfad ermitteln | + | </ |
- | Wird benötigt um einen absoluten Pfad zu konsolidieren. Zu weiteren Handhabung siehe die [[/ | + | |
+ | ==== Absoluten Pfad ermitteln ==== | ||
+ | |||
+ | Wird benötigt um einen absoluten Pfad zu konsolidieren. Zu weiteren Handhabung siehe die [[/ | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sGuiltyPath = fso.GetAbsolutePathName(sAskPath) | sGuiltyPath = fso.GetAbsolutePathName(sAskPath) | ||
- | ===== Temp-Verzeichnis ermitteln | + | </ |
- | Wird oft benötigt: Das temporäre Computerverzeichnis\\ | + | |
+ | ==== Temp-Verzeichnis ermitteln ==== | ||
+ | |||
+ | Wird oft benötigt: Das temporäre Computerverzeichnis | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
sTempPath = fso.GetSpecialFolder(2) | sTempPath = fso.GetSpecialFolder(2) | ||
- | \\ | + | </ |
- | ====== Laufwerksfunktionen ====== | + | |
- | | + | ===== Laufwerksfunktionen ===== |
- | ===== Laufwerksobjekt erstellen | + | |
- | | + | Hiermit kann ermittelt werden, welche Laufwerke es gibt, ob ein Laufwerk verfügbar ist, freien Speicherplatz etc. Hier kann nur ein grober Abriss der Möglichkeiten aufgezeigt werden. Siehe Drive-Objekt in der WSH-Hilfe\\ \\ |
+ | |||
+ | ==== Laufwerksobjekt erstellen ==== | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Set oDrive = fso.GetDrive(fso.GetDriveName(sFullPath)) | Set oDrive = fso.GetDrive(fso.GetDriveName(sFullPath)) | ||
- | ===== Verfügbare Laufwerke ermittelt ===== | + | </ |
- | | + | |
+ | ==== Verfügbare Laufwerke ermittelt ==== | ||
+ | |||
+ | (Laufwerke, die nicht bereit sind, werden nicht aufgeführt) | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
' | ' | ||
Public Function ListReadyDrives | Public Function ListReadyDrives | ||
Zeile 84: | Zeile 160: | ||
End Select | End Select | ||
End Function | End Function | ||
- | ===== Laufwerksbereitschaft ermitteln | + | </ |
- | | + | |
+ | ==== Laufwerksbereitschaft ermitteln ==== | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Set oDrive = fso.GetDrive(fso.GetDriveName(sFullPath)) | Set oDrive = fso.GetDrive(fso.GetDriveName(sFullPath)) | ||
If oDrive.IsReady Then | If oDrive.IsReady Then | ||
Zeile 92: | Zeile 173: | ||
End If | End If | ||
Set oDrive = Nothing | Set oDrive = Nothing | ||
- | ===== Freien Speicherplatz ermitteln | + | </ |
- | | + | |
+ | ==== Freien Speicherplatz ermitteln ==== | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
'... | '... | ||
Dim oDrive | Dim oDrive | ||
Zeile 122: | Zeile 208: | ||
End If | End If | ||
End Function | End Function | ||
- | ====== Verzeichnisfunktionen ====== | + | </ |
- | Eines der Hauptfunktionen ist: Ist ein Verzeichnis vorhanden\\ | + | |
+ | ===== Verzeichnisfunktionen ===== | ||
+ | |||
+ | Eines der Hauptfunktionen ist: Ist ein Verzeichnis vorhanden | ||
+ | |||
+ | // | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
If fso.FolderExists(sFolderPath) Then | If fso.FolderExists(sFolderPath) Then | ||
'Code, wenn Verzeichnis da ist | 'Code, wenn Verzeichnis da ist | ||
Zeile 130: | Zeile 223: | ||
MsgBox " | MsgBox " | ||
End If | End If | ||
- | ===== Folder-Objekt ===== | + | </ |
- | Das Folder-Objekt liefert die verschiedensten Verzeichniseigenschaften und Methoden. Man kann damit Verzeichnis-Attribute, | + | |
- | ==== Definieren | + | ==== Folder-Objekt ==== |
- | | + | |
+ | Das Folder-Objekt liefert die verschiedensten Verzeichniseigenschaften und Methoden. Man kann damit Verzeichnis-Attribute, | ||
+ | === Definieren === | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Dim oFolder | Dim oFolder | ||
Set oFolder = fso.GetFolder(sFolderPath) | Set oFolder = fso.GetFolder(sFolderPath) | ||
- | ==== Zerstören | + | </ |
- | | + | === Zerstören === |
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Set oFolder = Nothing | Set oFolder = Nothing | ||
- | ==== Erzeugen | + | </ |
- | | + | === Erzeugen === |
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
if not fso.FolderExists(sFolderPath) then | if not fso.FolderExists(sFolderPath) then | ||
fso.CreateFolder(sFolderPath) | fso.CreateFolder(sFolderPath) | ||
end if | end if | ||
+ | </ | ||
+ | |||
Es kann nur ein Ordner angelegt werden, dessen übergeordnete Ordner bereits vorhanden ist. Sonst erfolgt eine Fehlermeldung.\\ \\ | Es kann nur ein Ordner angelegt werden, dessen übergeordnete Ordner bereits vorhanden ist. Sonst erfolgt eine Fehlermeldung.\\ \\ | ||
- | ===== Ermittlung aller Unterordner in einem Ordner | + | |
- | | + | ==== Ermittlung aller Unterordner in einem Ordner ==== |
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Set ofolders = fso.getfolder(C: | Set ofolders = fso.getfolder(C: | ||
Set osubfolder = ofolders.Subfolders | Set osubfolder = ofolders.Subfolders | ||
Zeile 154: | Zeile 267: | ||
set osubfolder = nothing | set osubfolder = nothing | ||
set ofolders = nothing | set ofolders = nothing | ||
- | \\ | + | </ |
- | ===== Rekursives Einlesen von Dateien mit Filterkriterien, | + | |
- | | + | ==== Rekursives Einlesen von Dateien mit Filterkriterien, |
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
' | ' | ||
Option Explicit | Option Explicit | ||
Zeile 299: | Zeile 416: | ||
End Class | End Class | ||
':::::::::::::::::::::::::::::::::::::::::: | ':::::::::::::::::::::::::::::::::::::::::: | ||
- | ====== Dateifunktionen | + | </ |
- | Das wichtigste überhaupt ist; festzustellen, | + | |
+ | ===== Dateifunktionen ===== | ||
+ | |||
+ | Das wichtigste überhaupt ist; festzustellen, | ||
+ | |||
+ | // | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
If fso.FileExists(sFile) Then | If fso.FileExists(sFile) Then | ||
'Code, wenn Datei da ist | 'Code, wenn Datei da ist | ||
Zeile 307: | Zeile 431: | ||
MsgBox "Datei fehlt!", | MsgBox "Datei fehlt!", | ||
End If | End If | ||
- | ===== File-Objekt | + | </ |
- | Das File-Objekt liefert die verschiedensten Dateieigenschaften und Methoden. Man kann damit Datei-Attribute, | + | |
- | ==== Definieren | + | ==== File-Objekt ==== |
- | | + | |
+ | Das File-Objekt liefert die verschiedensten Dateieigenschaften und Methoden. Man kann damit Datei-Attribute, | ||
+ | |||
+ | === Definieren === | ||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Dim oFile | Dim oFile | ||
Set oFile = fso.GetFile(sFileFullPath) | Set oFile = fso.GetFile(sFileFullPath) | ||
- | ==== Zerstören | + | </ |
- | | + | |
+ | === Zerstören === | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Set oFile = Nothing | Set oFile = Nothing | ||
- | ==== Dateigröße ermitteln: | + | </ |
- | | + | |
+ | === Dateigröße ermitteln: === | ||
+ | |||
+ | // VBScript:// | ||
+ | |||
+ | <code JavaScript [enable_line_numbers=" | ||
Option Explicit | Option Explicit | ||
Zeile 341: | Zeile 481: | ||
Set oFile = Nothing | Set oFile = Nothing | ||
End Sub | End Sub | ||
- | ==== Dateiattribute lesen/ | + | </ |
- | | + | |
+ | === Dateiattribute lesen/ | ||
+ | |||
+ | Dieses Beispiel löscht die Attribute " | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
' | ' | ||
Zeile 387: | Zeile 534: | ||
Set oFile = Nothing | Set oFile = Nothing | ||
End Sub | End Sub | ||
- | \\ | + | </ |
- | ==== Prüfen, ob Datei existiert | + | |
- | | + | === Prüfen, ob Datei existiert === |
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Function FileExists(ByVal uFileName) | Function FileExists(ByVal uFileName) | ||
Dim fso | Dim fso | ||
Zeile 396: | Zeile 547: | ||
Set fso = Nothing | Set fso = Nothing | ||
End Function | End Function | ||
- | \\ | + | </ |
- | ==== Letzten Schreibzugriff ermitteln | + | |
- | | + | === Letzten Schreibzugriff ermitteln === |
+ | |||
+ | Manchmal ist es nötig zu ermitteln, wann eine Datei das letztemal geschrieben wurde. Das ist z. B. bei Kopiervorgängen wichtig, um festzustellen, | ||
+ | |||
+ | //VBScript:// | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Option Explicit | Option Explicit | ||
Zeile 422: | Zeile 579: | ||
Set oFile = Nothing | Set oFile = Nothing | ||
End Sub | End Sub | ||
+ | </ |