File System + File I/O in VB6
Jump to navigation
Jump to search
Microsoft Scripting Runtime / FSO
*must add 'reference' to "Microsoft Scripting Runtime"
- Be sure to "Set fso = Nothing" unless you like memory leaks and virtual memory errors in Windows.
Write/Create a new file using FileSystemObject
Dim fso As New FileSystemObject, fsoStream As TextStream
Dim rec1, strLine, strFileSpec
Dim cnt0 As Integer, tag1 As Integer
strFileSpec = Environ("HOMEPATH") & "\My Documents\kaching.log"
strLine = "kaching incident " & Date & " " & Format(time, "HH:mm:ss") & vbCrLf
Set fsoStream = fso.CreateTextFile(strFileSpec, True)
fsoStream.Write strLine
fsoStream.Close
Set fsoStream = Nothing: Set fso = Nothing
Check if File Exists
Private Function LocalFileExists() As Boolean
Dim fso As New FileSystemObject
Dim strSrc As String, strDst As String
strSrc = Trim("" & strRemoteFileName)
strDst = strLCRMpath & "\" & Trim("" & strRemoteFileName)
If fso.FileExists(strDst) Then LocalFileExists = True Else LocalFileExists = False
Set fso = Nothing
End Function
Delete File
strDst = strLCRMpath & "\" & Trim("" & strRemoteFileName)
fso.DeleteFile strDst
Copy File (Backup File)
fso.CopyFile strFileSpec, Replace(strFileSpec, ".xml", ".bak")
With error handling:
On Error GoTo SkipBackup If blnNoWriteFileInDebug <> True Then fso.CopyFile strFileSpec, Replace(strFileSpec, ".xml", ".bak") SkipBackup: On Error GoTo 0
Write if exists, create if doesn't exist using FileSystemObject
If fso.FileExists(strFileSpec) Then Set fsoStream = fso.OpenTextFile(strFileSpec, 2) Else Set fsoStream = fso.CreateTextFile(strFileSpec, True) End If fsoStream.Write strLine fsoStream.Close Set fsoStream = Nothing: Set fso = Nothing
' strFileSpec, 1 : ForReading 2 : ForWriting 8 : ForAppending
Other File System Methods
Launch Another Program (any) From Your VB Program
Private Sub launchSLXAssist()
Dim intExecute%
If InStr(LCase(Command), "/interpreter") > 0 Then
MsgBox "Shell SLXAssist.exe"
Else
intExecute% = Shell("SLXAssist.exe /verified", 1)
End If
End Sub
The above includes an optional command line parameter. The program being launched, in this example, checks for that command line parameter. It uses the reserved constant "Command".
Private Function CheckLauncherParamter()
If InStr(LCase(Command), "/verified") > 0 Then
CheckLauncherParamter = True
blnDebug = False
mnuFileExit.Enabled = False
ElseIf InStr(LCase(Command), "/debug") > 0 Then
CheckLauncherParamter = True
blnDebug = True
mnuFileExit.Enabled = True
Else
CheckLauncherParamter = False
End If
End Function
Check if Network Path and File are available
Private Sub checkFile01()
' [step 1]: check to see if the network path and autoupdate.xml are available
Dim fLen As Integer
Dim strResponse%
tmr.Enabled = False
intbarProg = 0: barProg.Value = intbarProg
On Error Resume Next
fLen = Len(Dir$(xmlfilepath))
strResponse% = vbRetry
While strResponse% = vbRetry
If Err Or fLen = 0 Then
' file dosent exist
strResponse% = MsgBox("Error: XML inaccessible for auto-update!", vbAbortRetryIgnore, "SALESLOGIX ASSISTANT")
Else
' file exists
strResponse% = 0
End If
Wend
On Error GoTo 0
End Sub