Forum: Visual Basic |
Thema:
Dateicheck ! Ist eine Datei vorhanden oder nicht ?? |
Von:
G. Guest (
01.10.2003 11:37) |
Hi !
Ich hab ein Verzeichnis und mehreren Unterordnern. In jedem Unterordner gibt es eine ini-Datei(Heisst in jedem Ordner gleich). ich möchte nun Abfragen ob in jedem dieser Ordner diese ini-Datei existiert und diese sollen dann in einem Listview ausgegeben werden anhand der ersten beiden Zeilen. Das funktioniert auch !!
Aber jetzt soll da noch rein, dass nur die ini-Dateien im Listview aufgezählt werden bei denen im Verzeichnis auch noch die dazugehörige exe-Datei(heisst auch in jedem Verzeichnis gleic) steht angezeigt werden.
Hier mal der Quelltext vielleicht hilft das:
Const WINPATH = "c:\windows\cocsvcin"
Const PKGPATH = "c:\windows\cocsvcin\Package.ini"
Const PACKAGENAME = "\Package.ini"
Const PATH = "path.ini"
Dim readFile As String
Dim Lv As ListView
Dim LItem As ListItem
Dim iAnzahl As Integer
Dim readPath As String
Private Sub about_Click(Index As Integer)
On Error Resume Next
frmInfo2.Show
End Sub
Private Sub beenden_Click(Index As Integer)
On Error Resume Next
Unload Me
End Sub
Private Sub Command1_Click()
On Error Goto err_click
Dim writePath As String
Dim strRet As String
Dim myString As String
Dim nRet As Integer
Dim iFr As Integer
Dim iFw As Integer
Dim i As Integer
Dim isChecked As Integer
Dim itemChecked As Object
iFw = 1
iFr = 2
isChecked = 0
writePath = PKGPATH
For i = 0 To Dir1.ListCount - 1
If (ListView1.ListItems.Item(i + 1).Checked = True) Then
isChecked = 1
End If
Next
If (isChecked = 0) Then
nRet = MsgBox("Install-Manager schliessen?", vbYesNo, "Info!")
Else
nRet = MsgBox("Ausgewählte Software installieren?", vbYesNo, "Install?")
End If
strRet = Dir(writePath, vbDirectory)
If (strRet <> "") Then
Kill writePath
End If
isChecked = 0
If (nRet = vbYes) Then
Open writePath For Binary As #iFw
For i = 0 To Dir1.ListCount - 1
If (ListView1.ListItems.Item(i + 1).Checked = True) Then
readFile = Dir1.List(i) & PACKAGENAME
Open readFile For Input As iFr
While Not EOF(iFr)
Input #iFr, myString
Put #iFw, , myString & vbCrLf
Wend
Close (iFr)
Put iFw, , vbCrLf
isChecked = 1
End If
Next
Close (iFw)
If (isChecked = 0) Then
Kill writePath
End If
Unload Me
End If
err_click:
If (Err.Number <> 0) Then
MsgBox Err.Description & ":" & Err.Number, vbInformation, "Error!"
End If
End Sub
Private Sub Command2_Click()
On Error Goto err_click
Dim i
For i = 1 To iAnzahl
ListView1.ListItems.Item(i).Checked = True
Next
err_click:
If (Err.Number <> 0) Then
MsgBox Err.Description, vbInformation, "Error!"
End If
End Sub
Private Sub Command3_Click()
On Error Goto err_click
Dim i
For i = 1 To iAnzahl
ListView1.ListItems.Item(i).Checked = False
Next
err_click:
If (Err.Number <> 0) Then
MsgBox Err.Description, vbInformation, "Error!"
End If
End Sub
Private Sub Command4_Click()
On Error Goto err_load
err_load:
If (Err.Number <> 0) Then
MsgBox Err.Description, vbInformation, "Error!"
End If
End Sub
Private Sub extras_Click(Index As Integer)
On Error Resume Next
End Sub
Private Sub Form_Load()
On Error Goto err_load
Me.Caption = FORMCAP
readPath = getData()
initForm
err_load:
If (Err.Number <> 0) Then
MsgBox Err.Description, vbInformation, "Error!"
End If
End Sub
Private Sub initForm()
On Error Goto err_init
Dim i As Integer
Dim nRet As String
Dim strSoftware As String
Dim strVersion As String
Dim strPath As String
iAnzahl = 0
Set Lv = Me.ListView1
Lv.Icons = Me.ImageList1
Lv.SmallIcons = Me.ImageList1
Lv.ListItems.Clear
Lv.ColumnHeaders.Clear
Lv.ColumnHeaders.Add , , "Software", 6000
nRet = Dir(WINPATH, vbDirectory)
If (nRet = "") Then
MkDir (WINPATH)
End If
Dir1.PATH = readPath
For i = 0 To Dir1.ListCount - 1
strPath = Dir1.List(i) & PACKAGENAME
Open strPath For Input As #1
Input #1, strSoftware
Input #1, strVersion
Close #1
Set LItem = Lv.ListItems.Add(, Dir1.List(i), strSoftware & " - " & strVersion, "iti2", "iti2")
iAnzahl = iAnzahl + 1
Next
err_init:
If ((Err.Number <> 0)) Then
MsgBox Err.Description & ":" & Err.Number, vbInformation, "Error!"
End If
End Sub
Private Function getData() As String
On Error Goto err_getData
Dim strData1 As String
Open PATH For Input As #1
Input #1, strData1
Close #1
getData = strData1
err_getData:
If ((Err.Number <> 0)) Then
MsgBox Err.Description & ":" & Err.Number, vbInformation, "Error!"
End If
End Function
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!