ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
6360
6360
EMPFEHLEN
-
01.02.04 17:57 #1
aHoi,
ich möchte Prüfen ob eine bestimmte Datei, beispielsweise c:\test.ini vorhanden ist. Bitte um ein kleines Code Beispiel.
-
01.02.04 18:12 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Hi,
eine Möglichkeit wäre das FileSystemObject aus der MS Scripting Runtime:
Es gibt aber noch mehrere andere Möglichkeiten.Code :1 2 3 4 5 6
Dim fso As FileSystemObject Set fso = New FileSystemObject If fso.FileExists("C:\Test.txt") Then ' ... End If
-
01.02.04 18:24 #3
Eine reicht mir. Danke für die schnelle Hilfe.
-
11.02.04 15:51 #4
- Registriert seit
- Jan 2004
- Beiträge
- 25
never use fso, its bad....
mach es lieber händisch über die Dir funktion
Public Function CheckPath(ByVal sPath As String) As Boolean
On Error GoTo ErrCheck
If Dir$(sPath, vbDirectory) = "" Then
CheckPath = False
Else
CheckPath = True
End If
Exit Function
ErrCheck:
CheckPath = False
Err.Clear
End Function
ist zwar ne funktion um auf Ordner abzuprüfen, ob vorhanden oder net, aber mit Dateien genauso, lass dich durch vbDirectory net iritieren.Geändert von VB_Freak_goes_C (11.02.04 um 15:54 Uhr)
-
11.02.04 15:56 #5
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Was ist denn der Vorteil der Dir-Funktion gegenüber dem FSO? Ich hab's nämlich genau andersrum in Erinnerung.
FSO gehört zwar zur Scripting Runtime, ist aber einfacher zu bedienen und bietet einen (wenn man das für VB überhaupt so sagen darf, ohne auf dem Scheiterhaufen zu landen) objektorientierteren Ansatz.
-
11.02.04 16:33 #6
- Registriert seit
- Jan 2004
- Beiträge
- 25
der wohl überhaupt wesentlichste Aspekt gegen das FSO ist, das es potentiellen Angreifern, Tür und Tor auf deinen Rechner, den Rechner des Anwenders öffnet.
Ob das immer noch so ist weis ich nicht, aber man muss es ja nicht ausprobieren.
Aber ich hab noch was besseres gefunden, zum Thema existenz prüfung.
Schaut euch mal das hier an, ziemlich edel würd cih sagen, sogar UNC Pfade sind kein Prob
http://www.aboutvb.de/khw/artikel/khwpathexists.htm
-
11.02.04 16:47 #7
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Wenn's danach geht, dürfte man Windows und VB überhaupt nicht benutzen.der wohl überhaupt wesentlichste Aspekt gegen das FSO ist, das es potentiellen Angreifern, Tür und Tor auf deinen Rechner, den Rechner des Anwenders öffnet.
-
24.07.05 13:25 #8
- Registriert seit
- Jun 2004
- Beiträge
- 12
Ich will aus meinem Programm heraus Anwendungen und Spiele starten.
Und um Laufzeitfehler zu vermeiden, wenn die Datei nicht existiert, will ich vorher überprüfen ob die Datei vorhanden ist.
Code :1 2 3 4 5 6 7
Private Sub RingBomberman_Click() If Dir("c:\intrplay\bomberman\bm95.exe") Then Call Shell("c:\intrplay\bomberman\bm95.exe", vbNormalFocus) Else MsgBox ("Datei nicht vorhanden") End If End Sub
Nur gibt er mit jetzt eine Meldung das die Typen unverträglich sind.
Kann mir jemand helfen?
Ich find die Methode mit dem dir-Befehl schon nicht schlecht, wenn sie funktionieren würde.
Es muss ja nicht gleich ein ellenlanger Code sein wenn eine Zeile auch reicht.
-
Das hier:
kann gar nicht funktionieren. Denn das Ergebnis der Dir-Funktion wird für die IF-Abfrage in eine Variable vom Typ Boolean konvertiert. Wenn die Datei nun aber nicht existiert, dann ergibt die Dir-Funktion als Ergebnis einen Null-String. Dieser kann nicht nach Boolean konvertiert werden und es gibt einen Laufzeitfehler.Code :1
If Dir("c:\intrplay\bomberman\bm95.exe") Then ...
Wenn du die Dir-Funktion verwenden willst, dann könntest du es so machen, indem du die Länge des Dir-Ergebnisses auswertest:
Code :1
If Len(Dir("c:\intrplay\bomberman\bm95.exe"))>0 Then ...
Ich selber prüfe die Existenz von Dateien und Verzeichnissen meistens mit dieser Funktion:
Hier verwende ich die GetAttr-Funktion, die die Eigenschaften einer Datei oder eines Verzeichnisses ermittelt. Wenn GetAttr einen Fehler erzeugt, dann gehe ich davon aus, dass die Datei oder das Verzeichnis nicht existiert.Code :1 2 3 4 5 6
Private Function Existiert(ByVal Pfad As String) As Boolean On Local Error Resume Next VBA.GetAttr Pfad Existiert = (Err.Number = 0) If Not Existiert Then Err.Clear End Function
Ich hoffe ich konnte helfen.Geändert von Shakie (24.07.05 um 19:01 Uhr)
hihi = -h²
-
27.07.05 22:45 #10
- Registriert seit
- Jun 2004
- Beiträge
- 12
Danke Shakie, das hat mir sehr weitergeholfen.
Ich will nun aber einen Schritt weitergehen und will keinen festen Pfad haben. Sondern eine Variable die den Pfad enthält.
Ich kann den Pfad auch durch den Öffnen-Dialog in die Variable schreiben, nur kann ich das Programm nicht mehr ausführen.
Ich denke das mein Fehler im Quelltext des Programmaufrufs ist.
Code :1 2 3 4 5 6 7
Private Sub RingAmp_Click() If Len(Dir(Amp)) > 0 Then Call Shell(Amp, vbNormalFocus) Else MsgBox ("Datei nicht vorhanden") End If End Sub
In der Variable Amp steht "E:\Winamp\Winamp.exe" drin (ohne Gänsefüsse).
Und die Abfrage wird ja passiert da der Pfad länger als null ist.
Nur beim Call bricht er dann mit "Datei nicht gefunden ab".
Kann mir da bitte jemand weiterhelfen?
Edit:
Hab das jetzt auch mal mit
Code :1 2 3 4 5 6 7
Private Sub RingAmp_Click() If Len(Dir(Amp)) > 0 Then Call Shell("Amp", vbNormalFocus) Else MsgBox ("Datei nicht vorhanden") End If End Sub
versucht. Ergebniss ist das gleiche: Laufzeitfehler 53/ Datei nicht gefunden.
Edit2:
Hab gemerkt das das nicht hier her gehört, sorry.
Aber zur Aufklärung des Problems:
Der Code
Code :1 2 3 4 5 6 7
Private Sub RingAmp_Click() If Len(Dir(Amp)) > 0 Then Call Shell(Amp, vbNormalFocus) Else MsgBox ("Datei nicht vorhanden") End If End Sub
funktioniert. Hab nur nicht bedacht das ich die Variable Amp in einer anderen Form dem Pfad zugewiesen habe und somit konnte das natürlich nicht funktionieren, da in der Form wo die Datei geöffnet werden soll die Variable immer noch leer war.Geändert von Bump Digger (28.07.05 um 19:37 Uhr)
Ähnliche Themen
-
Objekt auf Existenz prüfen
Von A319 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 17.06.08, 00:13 -
Dateipfad auf Existenz prüfen
Von jorgeHX im Forum JavaAntworten: 2Letzter Beitrag: 30.06.05, 14:57 -
Existenz von Datei prüfen
Von DeChecka im Forum C/C++Antworten: 9Letzter Beitrag: 19.06.05, 17:59 -
Registryeintrag auf Existenz prüfen
Von DerStatist im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 24.03.05, 14:33 -
session_start() auf existenz prüfen ?
Von methodus im Forum PHPAntworten: 6Letzter Beitrag: 20.04.02, 22:50





Zitieren
Login




