Tech Note 03e: Accessing the File SystemMarch 12, 2003
© NSB Corporation. All rights reserved. |
For more information on this control, see Microsoft's documentation.
The File System can be controlled through NS Basic/CE using the File Control. To create a File System Object, use the following statement:
addObject "filesystem"[,"file control name as string"]
The second argument is optional. It allows you to specify the name to use for the object. If you do not specify it, use "File". A sample follows showing how the File System Object works.
Type |
Method |
Description |
|
|
Returns the name of a matching file, directory, or folder. |
|
|
Creates a new directory or folder. |
|
|
Removes an existing directory or folder. |
|
|
Moves a file. |
|
|
Copies a file. |
|
|
Returns the date and time stamp of a file. |
|
|
Returns the length of a file in bytes. |
|
|
Deletes files from a disk. |
|
|
Returns the attributes of a file, directory, or folder. |
|
|
Sets attribute information for a file. |
REM This program demonstrates the use of the File and Filesystem Controls Option Explicit Dim selection addObject "filesystem" addObject "file" selection=0 while selection<>9 selection=inputbox("Choose test number:" & chr(13) & "1. Attr" & chr(13) & "2. Dir" & chr(13) & "3. Get/Put" & chr(13) & "4. Line Write" & chr(13) & "5. Write/Read" & chr(13) & "9. End Program", "File System Demo") select case selection case 1 cmdAttr_click case 2 cmdDir_click case 3 cmdGetPut_click case 4 cmdLineWrite_click case 5 cmdWrite_click case else selection=9 end select wEnd Private Sub cmdAttr_Click() On Error Resume Next Dim sTheFile sTheFile = inputBox("Enter file name:","ATTR Command") msgbox "GetAttr:" & fileSystem.GetAttr(sTheFile) & chr(13) & "FileDateTime:" & fileSystem.FileDateTime(sTheFile) & chr(13) & "FileLen:" & fileSystem.fileLen(sTheFile),0,"File Attributes for " & sTheFile If Err <> 0 Then MsgBox "Error in GetAttr: " & Err.Description Err.Clear End If End Sub Private Sub cmdDir_Click() Dim sDir, sMsg, input input = inputBox("Enter file name (wildcards OK)","DIR Command") sDir = filesystem.dir(input) sMsg = "Directory contents of " & input & ": " & vbCrLf & sDir While (sDir <> "") sDir = fileSystem.Dir() If sDir <> "" Then sMsg = sMsg & ", " & sDir End If Wend msgbox sMsg End Sub Private Sub cmdGetPut_Click() WriteUsingPut ReadUsingGet End Sub Private Sub cmdLineWrite_Click() Writeline Readline End Sub Private Sub cmdWrite_Click() WriteUsingControl ReadUsingControl End Sub Sub WriteUsingPut() On Error Resume Next Dim myArray ReDim myArray(6) file.Open "ceGetPut.txt", 4, 2, 3, 500 'fsAccessWrite myArray(1) = 1 myArray(2) = "This is a string" myArray(3) = True myArray(4) = Date myArray(5) = 63.12 file.Put myArray If Err <> 0 Then MsgBox "Error in WriteUsingPut: " & Err.Description err.clear End If myArray(1) = 2 myArray(2) = "This is a string2" myArray(3) = True myArray(4) = Date + 1 myArray(5) = 63.12 file.Put myArray myArray(1) = 3 myArray(2) = "This is a string3" myArray(3) = True myArray(4) = #11/16/34# myArray(5) = 63.12 file.Put myArray msgbox "done with Put", 0, "Put" file.Close End Sub Sub ReadUsingGet() Dim myArray,i,msgString On Error Resume Next file.Open "ceGetPut.txt", 4, 1, 3, 500 file.Get myArray, 2 msgString = myArray(1) For i = 2 To UBound(myArray) msgString = msgString & ", " & myArray(i) Next msgBox msgString,0,"Contents of ceGetPut.txt" file.Close End Sub Sub WriteUsingControl() Dim myArray ReDim myArray(10) myArray(1) = Date myArray(2) = "This is a string with a "" (quote)." myArray(3) = True myArray(4) = #11/16/34# myArray(5) = 63.12 myArray(6) = "Text" myArray(7) = Null myArray(8) = "" file.Open "ceWrite.txt", 2 'fsModeOutput file.WriteFields myArray file.Close End Sub Sub ReadUsingControl() Dim myArray, msgString, i file.Open "ceWrite.txt", 1 'fsModeInput myArray = file.InputFields(10) msgString = myArray(1) For i = 2 To UBound(myArray, 1) msgString = msgString & ", " & myArray(i) Next msgbox msgString,0,"Contents of ceWrite.txt" file.Close End Sub Sub Writeline() On Error Resume Next file.Open "ceLine.txt", 2 'fsModeOutput If Err <> 0 Then MsgBox "Error in writeline: " & Err.Description Err.Clear End If file.LinePrint "Hier ist unser erste Linie." file.LinePrint "Hier ist unser zweite Linie." file.Close End Sub Sub Readline() file.Open "ceLine.txt", 1 'fsModeInput dim sOut sOut = file.LineInputString() sOut =sOut & Chr(13) & file.LineInputString() msgBox sOut,0,"Contents of ceLine.txt" file.Close End Sub