FileSystemItem class
The base interface for everything inside the IDE’s virtual file system. Both File and Folder extend FileSystemItem and inherit its four universal members (Name, Path, Type, Parent). An item returned from a Folder enumeration or from FileSystem.ResolvePath is normally castable to its specific kind — the Type property or TypeOf discriminates between them.
Dim item As FileSystemItem
For Each item In Host.CurrentProject.RootFolder
If TypeOf item Is Folder Then
' …recurse
Else
Dim file As File = item
' …read
End If
Next
Properties
Name
The item’s name (the last segment of its Path). String, read-only. For files, includes the extension.
Parent
The folder that contains this item. As Folder. Read-only. The Parent of the project’s folder, Project.RootFolder, is the file system’s root, FileSystem.RootFolder, whose Path is twinbasic:/.
Note BETA 1042
Reading Parent of the file system’s root raises error -2147467259 (&H80004005), Automation error, rather than returning Nothing. The read itself raises it, so neither Is Nothing nor TypeName can test the value. In an event handler with no error handler, the error ends the handler without a message. Tell the root by its Path, twinbasic:/, rather than by its Parent.
Path
The item’s full virtual-FS path — e.g. "twinbasic:/Sources/MainModule.twin". String, read-only. Suitable as the Path argument to Editors.Open and FileSystem.ResolvePath.
Type
The kind of item. As FileSystemItemType (see below). Read-only. For folders the value is always Folder; for files it identifies the file’s encoding and role.
FileSystemItemType
A type discriminator returned by Type.
| Constant | Value | Description |
|---|---|---|
| Folder | 0 | A folder. |
| FileVIRTUALDOC | 1 | A read-only virtual document — the placeholder content the IDE renders for unrecognised file types. Unicode (UTF-16). |
| FileOTHER | 2 | A file the IDE recognises as binary or whose encoding it cannot determine. File.ReadText is not supported on this kind. |
| FileTWIN | 3 | A twinBASIC source file (.twin). UTF-8 encoded on disk. |
| FileBAS | 4 | A VB6-compatible standard module file (.bas). System ANSI encoded on disk. |
| FileCLS | 5 | A VB6-compatible class module file (.cls). System ANSI encoded on disk. |
| FileUIDESIGNER | 6 | A UI-designer surface for a Form, expressed as JSON. UTF-8 encoded. |
| FileJSON | 7 | A JSON file — typically the project’s Settings or other JSON project data. UTF-8 encoded. |