Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"Scripting.FileSystemObject"

Forumthread: "Scripting.FileSystemObject"

"Scripting.FileSystemObject"
eres
Zunächst einen sonnigen Gruß ins Forum,
mit:
Dim Fso as Object
Set Fso = CreateObject("Scripting.FileSystemObject")
If Fso.FileExists("C:\Archiv.xls") = true Then
prüfe ich (wie hier schon oft empfohlen) die Existenz einer Excel-Datei.
Da die Datei eine Archivdatei ist (Daten sind fix und dürfen nicht geändert werden) möchte ich gerne zusätzlich zur Existenz prüfen, ob die Datei nach wie vor die ursprüngliche Größe hat und/oder nach wie vor das gegebene LetzteÄnderungsdatum hat um sicherzustellen, dass die schreibgeschütze Datei nicht doch irgendwie verändert wurde.
Kann mir jemand helfen, ob dies auch über mein Fso-Object möglich ist, oder ob ich hierzu die Datei tatsächlich öffnen muß und über die Properties die gewünschten Daten auslesen muß?
Ich möchte wenn irgend möglich vermeiden die Datei zu öffnen, da diese sehr groß ist und dadurch meine originäre Verarbeitung "ausgebremst" wird.
Bin für jeden Tipp dankbar.
Herzliche Grüße aus Köln
erwin
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: "Scripting.FileSystemObject"
15.03.2011 08:26:48
Kawensmann
Hallo,
versuch's mal so:
    Dim objFso As Object
Dim objfile As Object
Dim strFile As String
strFile = "C:\Archiv.xls"
Set objFso = CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(strFile) Then
Set objfile = objFso.GetFile(strFile)
Debug.Print objfile.DateLastModified
End If

Gruß Kawensmann
Anzeige
AW: "Scripting.FileSystemObject"
15.03.2011 08:37:56
eres
Hallo Kawensmann,
funktioniert so wie ich es mit gewünscht habe. VIELEN DANK
Zusatzfrage: Kann ich irgendwo nachsehen, welche sonstigen Eigenschaften (wie z.B. Größe der Datei) ich in dieser Art abfragen kann?
Gruß
erwin
AW: "Scripting.FileSystemObject"
15.03.2011 08:41:38
eres
Sorry, Tante google hilft wie immer ...
hier hab ich die Antwort auf meine Zusatzfrage gefunden:
http://www.piclist.com/techref/language/asp/vbs/vbscript/fsoGetFile.htm
Gruß
erwin
Anzeige
außerdem kannst du ...
15.03.2011 08:47:21
Rudi
Hallo,
...dir in der VBA-Hilfe das File-Objekt anschauen.
Gruß
Rudi
AW: außerdem kannst du ...
15.03.2011 08:50:05
eres
Guten Morgen Rudi,
natürlich hast Du Recht. Ich erwische mich immer wieder dabei, die VBA-Hilfe zu unterschätzen.
Sie hat halt doch eine ganz andere Qualtität als die Hilfen bei den Applicationen selbst.
Danke & Gruß
erwin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit Scripting.FileSystemObject in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Erstellen des FileSystemObject
    Um ein FileSystemObject zu erstellen, benutze folgenden Code:

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
  2. Überprüfen der Dateiexistenz
    Du kannst mit der FileExists-Methode prüfen, ob eine Datei existiert:

    If fso.FileExists("C:\Archiv.xls") Then
       ' Datei existiert
    End If
  3. Zugriff auf Dateieigenschaften
    Wenn die Datei existiert, kannst du weitere Eigenschaften wie das Änderungsdatum abrufen:

    Dim objfile As Object
    Set objfile = fso.GetFile("C:\Archiv.xls")
    Debug.Print objfile.DateLastModified
  4. Zusätzliche Eigenschaften abfragen
    Du kannst auch die Größe der Datei oder andere Eigenschaften nutzen:

    Debug.Print objfile.Size

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Dies kann passieren, wenn der Pfad zur Datei falsch ist. Überprüfe den Pfad und stelle sicher, dass die Datei existiert.

  • Lösung: Datei vor dem Zugriff überprüfen
    Stelle sicher, dass du die Datei mit FileExists überprüfst, bevor du versuchst, darauf zuzugreifen.


Alternative Methoden

  • Direktes Öffnen der Datei
    Wenn du dennoch die Datei öffnen musst, kannst du die Workbooks.Open-Methode verwenden, aber das kann die Bearbeitung verlangsamen, wenn die Datei groß ist.

  • WScript.Shell verwenden
    Eine Alternative zum FileSystemObject ist die Verwendung von WScript.Shell, um Skripte auszuführen oder andere Dateioperationen durchzuführen.


Praktische Beispiele

  1. Kompletter Code zur Überprüfung einer Datei:

    Sub CheckFile()
       Dim fso As Object
       Dim objfile As Object
       Dim strFile As String
       strFile = "C:\Archiv.xls"
    
       Set fso = CreateObject("Scripting.FileSystemObject")
       If fso.FileExists(strFile) Then
           Set objfile = fso.GetFile(strFile)
           Debug.Print "Letzte Änderung: " & objfile.DateLastModified
           Debug.Print "Größe: " & objfile.Size
       Else
           Debug.Print "Datei existiert nicht."
       End If
    End Sub
  2. Verwendung in größeren Projekten
    Du kannst das FileSystemObject auch in größeren Automatisierungsprojekten verwenden, um mehrere Dateien zu verwalten oder Berichte zu generieren.


Tipps für Profis

  • Verwendung von Dim:
    Definiere deine Variablen immer so spezifisch wie möglich. Anstatt Dim fso As Object zu verwenden, kannst du Dim fso As New Scripting.FileSystemObject verwenden, um Typensicherheit zu gewährleisten.

  • Fehlerbehandlung:
    Implementiere Fehlerbehandlungsroutinen, um unerwartete Probleme zu vermeiden. Zum Beispiel:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
      Debug.Print "Fehler aufgetreten: " & Err.Description
    End If

FAQ: Häufige Fragen

1. Was ist das Scripting.FileSystemObject?
Das Scripting.FileSystemObject ist ein Objekt, das in VBA verwendet wird, um auf das Dateisystem zuzugreifen und Dateieigenschaften zu manipulieren.

2. Warum sollte ich das FileSystemObject anstelle von normalen Dateioperationen verwenden?
Das FileSystemObject bietet eine einfachere und flexiblere Methode, um mit Dateien und Ordnern in VBA zu arbeiten, insbesondere für die Abfrage von Dateieigenschaften.

3. Welche Eigenschaften kann ich mit dem FileSystemObject abfragen?
Du kannst Eigenschaften wie Size, DateLastModified, DateCreated und viele andere abfragen, um detaillierte Informationen über eine Datei zu erhalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige