| sidebar_position | 7 |
|---|
Read, write, and inspect files through Host.IO. All file paths use Host.Url objects.
Methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
Host.IO.createPackage(path, type) |
object |
path — Host.Url path, type — format (e.g. "application/zip") |
Create a .package archive. Returned object has setOption(), create(), embedd(folder), flush(), close() |
Host.IO.createTextFile(path) |
object |
path — Host.Url path |
Create a text file for writing (.writeLine(text), .close()) |
Host.IO.File(path) |
object |
path — Host.Url path |
Get a file operation object (.exists(), .copyTo(), .remove()) |
Host.IO.findFiles(folder, pattern) |
object |
folder — folder path, pattern — glob pattern |
Find files matching a pattern. |
Host.IO.fromBase64(data) |
string |
data — Base64 string |
Decode Base64 data |
Host.IO.getDevelopmentFileLocation() |
string |
none | Get the development file storage path |
Host.IO.loadJsonFile(path) |
object |
path — Host.Url path |
Load a JSON file into a native JavaScript object |
Host.IO.toBase64(data) |
string |
data — string data to encode |
Encode data as Base64 |
Host.IO.openPackage(path, type) |
object |
path — Host.Url path, type — format (e.g. "application/zip") |
Open a .package archive. Returned object: extract(folder) |
Host.IO.openTextFile(path) |
object |
path — Host.Url path |
Open a text file for reading (.readLine(), .endOfStream, .close()) |
Host.IO.XmlTree(path) |
object |
path — Host.Url path |
Parse an XML file into a navigable tree |
Host.IO.createPackage() returns a package builder object.
Methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
setOption(name, value) |
— | name — option name, value — option value |
Set a package option (e.g. "compressed", true) |
create() |
— | none | Create the package file |
embedd(folder) |
— | folder — Host.Url path to a folder |
Embed all files from a folder into the package |
flush() |
— | none | Flush pending writes |
close() |
— | none | Close and finalize the package |
var folder = Host.Url("local://$USERCONTENT/my-folder/");
var pkg = Host.IO.createPackage(path, "application/zip");
pkg.setOption("compressed", true);
pkg.create();
pkg.embedd(folder);
pkg.flush();
pkg.close();Host.IO.createTextFile() returns a text file writer object.
var file = Host.IO.createTextFile(path);
if (file) {
file.writeLine("content");
file.close();
}Host.IO.File() returns a file operation object for the given path.
Methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
exists() |
number |
none | Check whether a file exists (returns 1 if found, 0 if not) |
copyTo(dest) |
— | dest — destination Host.Url |
Copy a file to a destination |
remove() |
— | none | Delete a file or directory |
Host.IO.findFiles() returns an iterator of matching files as Host.Url objects.
Iterator methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
done() |
number |
none | Check whether iteration is complete (returns 0 while items remain, 1 when exhausted) |
next() |
object |
none | Get the next file item |
first() |
— | none | Move to the first item |
last() |
— | none | Move to the last item |
previous() |
object |
none | Get the previous file item |
var it = Host.IO.findFiles(folder, "*.xml");
while (!it.done()) {
var file = it.next();
var name = file.name;
}Host.IO.fromBase64() decodes a Base64 string.
var decoded = Host.IO.fromBase64(data);Host.IO.loadJsonFile() loads and parses a JSON file.
var data = Host.IO.loadJsonFile(Host.Url("local://$USERCONTENT/myfile.json"));Host.IO.openPackage() opens an existing .package archive for reading.
Methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
extract(folder) |
— | folder — Host.Url path to extract to |
Extract all package contents to a folder |
var pkg = Host.IO.openPackage(path, "application/zip");
if (pkg) {
var folder = Host.Url("memory://ExtractTarget/", true);
pkg.extract(folder);
}Host.IO.openTextFile() opens a text file for reading.
var file = Host.IO.openTextFile(path);
if (file) {
while (!file.endOfStream) {
var line = file.readLine();
}
file.close();
}Host.IO.toBase64() encodes a string as Base64.
var encoded = Host.IO.toBase64(data);Host.IO.XmlTree() parses an XML file into a navigable tree. The tree object has root and errorMessage properties. Nodes are returned by tree.root and node.findNode().
Tree properties:
| Property | Type | Writable | Example | Description |
|---|---|---|---|---|
errorMessage |
string |
No | "" |
Error message, empty on success |
root |
object |
No | — | Root node of the parsed XML |
Tree methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
loadFromFile() |
— | none | Reload the XML from file |
saveToFile() |
— | none | Save modifications back to file |
Node properties:
| Property | Type | Writable | Example | Description |
|---|---|---|---|---|
name |
string |
No | "SomeSection" |
Tag name |
text |
string |
No | "value" |
Text content |
comment |
string |
No | "<!-- comment -->" |
Comment content |
parent |
object |
No | — | Parent node object |
Node methods:
| Method | Returns | Parameters | Description |
|---|---|---|---|
addChild(node) |
— | node — child node object |
Add a child node |
find(name) |
object |
name — tag name |
Find first child with matching tag name (alias for findNode) |
findNode(name) |
object |
name — tag name |
Find first child with matching tag name |
getAttribute(name) |
string |
name — attribute name |
Get an attribute value |
newIterator() |
object |
none | Create an iterator over child nodes |
newNode() |
object |
none | Create a new child node |
setAttribute(name, value) |
— | name — attribute name, value — attribute value |
Set an attribute |
var tree = Host.IO.XmlTree(Host.Url("local://$APPCONFIG/User.options"));
var root = tree.root;
var child = root.findNode("SomeSection");
var val = child.getAttribute("someAttr");
var it = root.newIterator();
while (!it.done()) {
var node = it.next();
Host.Console.writeLine(node.name);
}