Filesystem Operations
Filesystem Methods
The following EmscriptenFS methods are exposed via the php object:
php.analyzePath
Get information about a file or directory.
await php.analyzePath(path);
php.readdir
Get a list of files and folders in a directory.
await php.readdir(path);
php.readFile
Get the contents of a file as a Uint8Array
by
default, or optionally as utf-8.
await php.readFile(path);
await php.readFile(path, {encoding: 'utf8'});
php.stat
Get information about a file or directory.
await php.stat(path);
php.mkdir
Create a directory.
await php.mkdir(path);
php.rmdir
Delete a directory (must be empty).
await php.rmdir(path);
php.unlink
Delete a file.
await php.unlink(path);
php.rename
Rename a file or directory.
await php.rename(path, newPath);
php.writeFile
Create a new file. Content should be supplied as a
Uint8Array
, or optionally as a string of text.
await php.writeFile(path, data);
await php.writeFile(path, data, {encoding: 'utf8'});
Accessing the FileSystem of a Service Worker
Note: If you’re using php-web in
conjunction with php-cgi-worker to work on the filesystem,
you’ll need to refresh
the filesystem in the
worker. You can do that with the following call using
msg-bus
(as shown below).
// Write a file
await sendMessage('writeFile', ['/path/to/your/file', 'contents', {encoding: 'utf8'}]);
// Check the path
const result = await sendMessage('analyzePath', ['/path/to/your/file']);
If you modify the filesystem outside of the service worker,
you can refresh its filesystem with a call to
refresh
.
// Tell the worker that the FS has been updated
await sendMessage('refresh');