fs (Filesystem module)
Does filesystem work - access to files and directories.
Usage:
var fs=require("fs");
Access to directories:
var dir=new fs.Directory("/etc/");
var html="<h1>List of subdirectories in /etc/</h1>";
dir.listDirectories().forEach(function(dirname) {
html+="<div class='dir'>"+dirname+"</div>\n";
});
Access to files:
var file=new fs.File("/etc/passwd");
var html="<h1>List of users on this machine</h1>";
file.open("r");
file.read().toString("utf-8").split(/\n/).forEach(function(userline) {
var tmp=userline.split(/:/);
html+="<div class='user-login'>"+tmp[0]+"</div>\n";
});
file.close();
List of methods of Directory class
| Name | Arguments | Returns | Description |
|---|---|---|---|
| new | String dirname | Creates an object of Directory class, with dirname an absolute or relative directory name. | |
| create | int mode | Makes a directory with given permissions. If argument is missing, 0777 is assumed. Throws an error if directory cannot be made. | |
| listFiles | Array of String | Returns an array of file names in given directory. Throws an error if directory cannot be listed. | |
| listDirectories | Array of String | Returns an array of subdirectory names in given directory. Throw an error if directory cannot be listed. | |
| toString | String | Returns a directory name (an argument given at new Directory call) | |
| exists | Boolean | Returns if directory exists, can be accessed and dirname type is directory (not a file, symlink etc) | |
| remove | Removes directory. Throws an error if cannot be done. | ||
| stat | Object | Returns stats of directory as of C stat() function. See below for details. | |
| isDirectory | Returns if directory exists and dirname type is directory (does not check for access rights) |
List of methods of File class
| Name | Arguments | Returns | Description |
|---|---|---|---|
| new | String filename |
Create an object of File class, with filename an absolute or relative file name. Also can be used with file descriptor (for example, from exec3). |
|
| open | String mode | Opens file, valid modes are same as C fopen() function ("r", "w", "a","r+",...). Throws an error if file cannot be opened. | |
| read | Buffer | Reads a full file into binary Buffer. | |
| readLine | Buffer | Reads a line into binary Buffer. | |
| rewind | Rewinds file. Throws an error if file is not opened. | ||
| close | Closes file. Throws an error if file cannot be closed. | ||
| flush | Calls C fflush() function. Throws an error if file is closed. | ||
| write | Buffer or String data | Writes contents to (previously opened for writting) file. | |
| writeLine | Buffer or String data | Writes contents to (previously opened for writting) file. | |
| remove | Deletes file | ||
| toString | Returns a file name (an argument given at new new File call) | ||
| exists | Boolean | Returns if file exists, can be accessed and filename type is file (not a directory, symlink etc) | |
| move | String newname | Renames file to newname. Changes filename inside object. | |
| copy | String newname | Copies file to newname. Object is not changed. | |
| stat | Object | Returns stats of file as of C stat() function. See below for details. | |
| isFile | Boolean | Returns is file exists and filename type is file (does not check for access rights) | |
| isEOF | Boolean | Returns if file position indicator status is EOF as of C feof() function. Throws an error if file is closed. |
Details of dir.stat() and file.stat() methods
Both methods return same data, as of C stat() function. You can see man 2 stat for details.
var f=new fs.File("/etc/passwd");
var stat=f.stat();
var html="<h1>File stats are</h1>\n";
html+="<p>Size: "+stat.size+" bytes</p>\n";
html+="<p>Creation date: "+(new Date(stat.ctime*1000))+"</p>\n";
html+="<p>Last modification date: "+(new Date(stat.mtime*1000))+"</p>\n";
| Argument | Type | Description |
|---|---|---|
| size | BigInt | File size in bytes |
| mtime | BigInt | Time in seconds since start of epoch. Must be multiplied by 1000 to use with new Date() |
| atime | BigInt | |
| ctime | BigInt | |
| mode | Int | Access rights |
| uid | Int | Owner id |
| gid | Int | Group id |