Sahi - File Manipulation APIs

Text Files

_readFile

Since Sahi Pro: 3.5
Since Sahi OS: 2
Technologies Available: All

_readFile($filePath)

Arguments
$filePathstring File path of file ot be read as text

Returns
stringContent of the file

Details

Reads the file and returns a string. Assumes UTF-8 encoding of file.
var $contents = _readFile("users.txt");

_writeFile

Since Sahi Pro: 3.5
Since Sahi OS: 2
Technologies Available: All

_writeFile($string, $filePath[, $overwrite[, $encoding]])

Arguments
$stringstring String to write to file.
$filePathstring File path of file to write into. File path is resolved relative to current script file.
$overwriteboolean optionalIf true, overwrites content. Default is false, which appends at the end of existing content.
$encodingstring optionalEncoding to be used while writing. Default is "UTF-8"

Returns
null

Details

_writeFile("First Line", "out.txt", true); // over writes content in file
_writeFile("Second Line", "out.txt"); // appends second line in file

_writeToFile

Since Sahi Pro: 3.5
Since Sahi OS: 2
Technologies Available: All

_writeToFile($string, $filePath[, $overwrite[, $encoding]])

Arguments
$stringstring String to write to file.
$filePathstring File path of file to write into. File path is resolved relative to current script file.
$overwriteboolean optionalIf true, overwrites content. Default is false, which appends at the end of existing content.
$encodingstring optionalEncoding to be used while writing. Default is "UTF-8"

Returns
null

Details

This API is the same as _writeFile. Only the name is different.

_deleteFile

Since Sahi Pro: 3.5
Since Sahi OS: 2
Technologies Available: All

_deleteFile($filePath)

Arguments
$filePathstring File path of file to delete. File path is resolved relative to current script file.

Returns
null

Details

_deleteFile("out.txt"); // deletes out.txt

_fileExists

Since Sahi Pro: 6.1.0
Since Sahi OS: NA
Technologies Available: All

_fileExists($filePath)

Arguments
$filePathstring File path of file to check. File path is resolved relative to current script file.

Returns
booleanReturns true if the file exists on the filesystem, else false

Details

_fileExists("out.txt"); // returns true if out.txt exists.

_renameFile

Since Sahi Pro: 3.5
Since Sahi OS: 3
Technologies Available: All

_renameFile($oldFilePath, $newFilePath)

Arguments
$oldFilePathstring File path of file to rename. File path is resolved relative to current script file.
$newFilePathstring New path of file to write into. File path is resolved relative to current script file.

Returns
null

Details

Renames or moves a file from oldFilePath to newFilePath
_renameFile("original.txt", "renamed.txt"); // renames original.txt to renamed.txt
_renameFile("original.txt", "newPath/renamed.txt"); // moves and renames original.txt to newPath/renamed.txt

_copyFile

Since Sahi Pro: 5.1.0
Since Sahi OS: 5.0
Technologies Available: All

_copyFile($srcFilePath, $destFilePath)

Arguments
$srcFilePathstring File path of an existing file to copy, must not be null
$destFilePathstring File path of the new file, must not be null

Returns
null

Details

copy a file from srcFilePath to destFilePath
_copyFile("source.txt", "dest.txt"); // copies the source.txt into dest.txt

CSV Files

CSV Files are a convenient way to store data.
Being text based, they can be easily version controlled and diffed.
Sahi has APIs to read and write to CSV Files.

_readCSVFile

Since Sahi Pro: 3.5
Since Sahi OS: 2
Technologies Available: All

_readCSVFile($filePath[, $wordSeparator[, $ignoreEmptyRows]])

Arguments
$filePathstring file path to csv file.
$wordSeparatorcharacter optional Word separator character. Defaults to comma.
$ignoreEmptyRowsboolean optional ignores the empty lines. Defaults to false.

Returns
two dimensional array of stringsReturns a 2 dimensional array of all values in the csv file

Details

_readCSVFile api expect only one char for Word separator.
If $wordSeparator has more than one char, only first char will be taken as $wordSeparator.
Given a userinfo.csv file with data
1,Ram,18,Male
2,Sam,20,Male

var $userinfo = _readCSVFile("data/userinfo.csv");
var $userName = $userinfo[0][1]; // returns Ram

Given a employee.csv file with data
1,Ram,18,Male
,
2,Sam,20,Male

var $employee = _readCSVFile("data/employee.csv");
var $employee2 = _readCSVFile("data/employee.csv", "," , true);
var $csvLength = $employee.length // returns 3
var $csvLength2 = $employee2.length // returns 2

_writeCSVFile

Since Sahi Pro: 3.5
Since Sahi OS: 3
Technologies Available: All

_writeCSVFile($array2d, $filePath[, $overwrite[, $wordSeparator[, $forceQuotes[, $padEmptyCells]]]])

Arguments
$array2d2 dimensional array Two dimensional array of data.
$filePathstring File path of csv file to write to.
$overwriteboolean optional If true, overwrites data. Default is false, which appends data.
$wordSeparatorstring optional Word separator character. Defaults to comma.
$forceQuotesboolean optional Force strings to be inside quotes in the csv file. Defaults to true.
$padEmptyCellsboolean optional Empty cells at the end of rows are not trimmed. Ensures an equal number of commas (separators) in each line. Defaults to false.

Returns
null

Details

    infoNOTE: $forceQuotes was added Since Sahi Pro: 6.2.0. For old document Refer here

                 $padEmptyCells was added Since Sahi Pro: 7.0.0. For old document Refer here


Writes the 2 dimensional array into the csv file.

var $data = [];
$data[0] = ["1", "Ram", 18, "Male"];
$data[1] = ["2", "Sam", 20];

_writeCSVFile($data, "data/userinfo.csv", false, ",", true, true);
//forces data to be inside quotes with specified word separator and empty cells at the end of rows are not trimmed.
//appends data into userinfo.csv.

var $moreData = [["3", "Lak", 30, "Male","Married"]];
_writeCSVFile($moreData, "data/userinfo.csv", false, ",", true, true);

The above code will create data/userinfo.csv with data

"1","Ram","18","Male",""
"2","Sam","20","",""
"3","Lak","30","Male","Married"