Forums Neueste Beiträge
 

HILFE!! Datei kann unter Windows 7 nicht mehr gefunden werden!!

18/11/2009 - 16:37 von Hans Hegau | Report spam
Hallo NG,

ich habe jetzt Windows 7 auf meinem Rechner und VB6, das funktioniert
alles soweit und ist echt gut.
ABER:
Beim Setup von meinem Programm schreibe ich eine Datei ins
Systemverzeichnis, die mein Programm beim Starten dann auswertet.
jetzt kann ich aber die Datei nicht mehr finden, obwohl ich mir 100%
sicher bin, dass sie im C:\Windwos\System32-Verzeichnis liegt.
Kann mir irgendjemand helfen, ich bin am verzweifeln, weil ich schon
zig Methoden versucht hab.

Methode1:
Function FileExists(filename$) As Boolean
FileExists = (Dir$(filename$) <> "")
End Function

Methode2:
Private Declare Function FindExecutable Lib "shell32.dll" _
Alias "FindExecutableA" (ByVal lpFile As String, _
ByVal lpDirectory As String, ByVal lpResult As String) As Long
Public Function FileExists2(Path As String) As Boolean
FileExists2 = CBool(FindExecutable(Path, "", Space$(255)) <> 2)
End Function

Methode3:
Public Function FileExists3(Path As String) As Boolean
Const NotFile = vbDirectory Or vbVolume
On Error Resume Next
FileExists3 = (GetAttr(Path) And NotFile) = 0
On Error GoTo 0
End Function

Methode4:
Public Function FileExists4(strDatei As String) As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(strDatei) Then
FileExists4 = False
Else
FileExists4 = True
End If
Set fso = Nothing
End Function

Alle diese Methoden bringen FALSE zurück, obwohl die Datei 100%ig
existiert.

Ich vermute ja, dass es daran liegt, dass die Datei im
Systemverzeichnis liegt. Lege ich die Datei direkt auf C:\, dann wird
sie auch gefunden.
Aber dann kann ich sie nicht lesen, weil dann die folgende Methode
sagt, dass sie nicht vorhanden ist:

Public Function txt_ReadLine(ByVal sFileName As String, _
ByVal LineToRead As Long) As String

Dim F As Integer
Dim sLine As String
Dim lRow As Long

lRow = 0
' Existiert die Datei ?
If Dir$(sFileName) <> "" Then

' Datei zum Lesen öffnen
F = FreeFile
Open sFileName For Input As #F

' Solange einlesen, bis entweder Dateiende
' oder gewünschte Zeilennummer erreicht
While Not EOF(F) And lRow < LineToRead
lRow = lRow + 1
Line Input #F, sLine
Wend
Close #F
End If

' Dateiende wurde frühzeitig erreicht,
' oder Datei war nicht vorhanden
If lRow < LineToRead Then _
sLine = ""

txt_ReadLine = sLine
End Function

Wer kann mir helfen???
DANKE schon mal im voraus.

Viele Grüße aus dem Norden,
Hans Hegau
 

Lesen sie die antworten

#1 Hans Hegau
18/11/2009 - 16:44 | Warnen spam
Aber dann kann ich sie nicht lesen, weil dann die folgende Methode
sagt, dass sie nicht vorhanden ist:



Da bin ich nochmal!!
Diese Aussage nehm ich zurück, weil ich beim Testen noch immer auf die
Datei im Systemverzeichnis verweisen habe. Nehme ich die Datei von C:
dann funktionierts!!

Es muss also am System32-Pfad liegen.

Gibt es irgend eine Methode eine System-Datei unter Windows7 zu lesen?
Unter Vista hat es noch super geklappt.

Danke nochmal!!

Ähnliche fragen