Skip to content

Accessing Files and I/O Functions

Overview

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

File Global Object

File operations in Rapise are typically performed using the global File object.

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

    // Test exists/delete
    if (File.Exists(fn))
    {
        File.Delete(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;
    Tester.Message(testFolderPath);
    var subFolderPath = testFolderPath + "\\SubFolder20170314";
    File.CreateFolder(subFolderPath);
    Tester.Assert("Sub folder exists, CreateFolder works", File.FolderExists(subFolderPath));
    File.DeleteFolder(subFolderPath);
    Tester.Assert("Sub folder does not exist, DeleteFolder works", !File.FolderExists(subFolderPath));
}

FileSystemObject

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

http://msdn.microsoft.com/en-us/library/aa242706(v=vs.60).aspx

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');
    ts.Close();
    var file = fso.GetFile('C:\\Temp\\MyTestFile.txt');
    ts = file.OpenAsTextStream(IOMode_ForWriting, IOFormat_Unicode);
    ts.WriteLine('Hello World!');
    ts.Close();
    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();
    Tester.Message(text);
    ts.Close();
}

See Also