Accessing Files and I/O Functions


Sometimes using Rapise you need to access files on the Windows file system, either for testing purposes, or to object test data stored in a flat CSV, TSV or text file.

File Global Object

Normally file operations in Rapise are done with global File object.

function Test()
    var fn = "TestFile.txt";
    var cnt = "Hello world!";

    // Test exists/delete
    if (File.Exists(fn))
        Tester.Assert("File deleted", !File.Exists(fn));

    // Test read/write
    File.Write(fn, cnt);
    if (Tester.Assert("File exists", File.Exists(fn)))
        var text = File.Read(fn);
        Tester.AssertEqual("File write/read", text, cnt);

    // Test append
    File.Write(fn, "C");
    File.Append(fn, "C");
    var text = File.Read(fn);
    Tester.AssertEqual("File append works", "CC", text);

    // Folder exists/create/delete
    var folderExists = File.FolderExists(".");
    Tester.Assert("Folder exists", folderExists);
    var testFolderPath = File.FolderInfo(".").Path;
    var subFolderPath = testFolderPath + "\\SubFolder20170314";
    Tester.Assert("Sub folder exists, CreateFolder works", File.FolderExists(subFolderPath));
    Tester.Assert("Sub folder does not exist, DeleteFolder works", !File.FolderExists(subFolderPath));


Alternatively you can can access the file system using the FileSystemObject.

function Test()
    //IOMode constants
    var IOMode\_ForReading = 1;
    var IOMode\_ForWriting = 2;
    var IOMode\_ForAppending = 8;
    //var Format constants
    var IOFormat\_ASCII = 0;
    var IOFormat\_Unicode = -1;
    //This sample demonstrates how to manipulate the Windows file system using Rapise
    //We shall open a text file for writing in this simple example
    var fso = new ActiveXObject('Scripting.FileSystemObject');
    var ts = fso.CreateTextFile('C:\\\\Temp\\\\MyTestFile.txt');
    var file = fso.GetFile('C:\\\\Temp\\\\MyTestFile.txt');
    ts = file.OpenAsTextStream(IOMode\_ForWriting, IOFormat\_Unicode);
    ts.WriteLine('Hello World!');
    Tester.Message('Wrote File');
    //Now read this file back
    file = fso.GetFile('C:\\\\Temp\\\\MyTestFile.txt');
    ts = file.OpenAsTextStream(IOMode\_ForReading, IOFormat\_Unicode);
    var text = ts.ReadLine();