1. Plugins
  2. ToDesktop File System

Plugins

ToDesktop FS

Securely interact with the file system.

Installation

Install @todesktop/client-fs in your client-side application using

        npm install @todesktop/client-fs

      

Installation of the plugin package is also necessary. Using ToDesktop Builder, navigate to Plugins. Click on the Explore button for "File System" and install the package.

Security

For security considerations, usage of this plugin is restricted in the following ways:

  • Paths accessed by this library must begin with one of our whitelisted directories:

    • userData: Directory for storing your app's configuration files.
    • appData: Per-user application data directory.
    • desktop: The current user's Desktop directory.
    • documents: Directory for a user's 'My Documents'.
    • downloads: Directory for a user's downloads.
    • music: Directory for a user's music.
    • pictures: Directory for a user's pictures.
    • videos: Reads the entire contents of a file.
    • recent: Directory for the user's recent files.
    • temp: Temporary directory.
  • FS functionality is enabled on a function-by-function basis via the ToDesktop Builder interface. This means that you can expose the readFile functionality to your client app, but prohibit writeFile.

Usage

readFile

Reads the entire contents of a file.

        import { readFile } from "@todesktop/client-fs";

const fileContents = await readFile("temp", "file/path");

      

writeFile

Writes data to a file, replacing the file if it already exists.

        import { writeFile } from "@todesktop/client-fs";

await writeFile("temp", "file/path", "File Contents");

      

appendFile

Append data to a file, creating the file if it does not exist.

        import { appendFile } from "@todesktop/client-fs";

await appendFile("temp", "file/path", "File Contents");

      

copyFile

Copy a file from a source path to a destination path.

        import { copyFile } from "@todesktop/client-fs";

await copyFile(
  { dirName: "temp", path: "src/path" },
  { dirName: "temp", path: "dest/path" }
);

      

readdir

Read a directory.

        import { readdir } from "@todesktop/client-fs";

const fileList = await readdir("temp", "file/path");

      

mkdir

Create a directory.

        import { mkdir } from "@todesktop/client-fs";

await mkdir("temp", "file/path");

      

rename

Change the name or location of a file or directory.

        import { rename } from "@todesktop/client-fs";

await rename(
  { dirName: "temp", path: "old/path" },
  { dirName: "temp", path: "new/path" }
);

      

rm

Remove a file or directory.

        import { rm } from "@todesktop/client-fs";

await rm("temp", "file/path");

      

stat

Get file status.

        import { stat } from "@todesktop/client-fs";

const stats = await stat("temp", "file/path");