path
The path module provides utilities for working with file and directory paths.
This package is also accessible with window.__TAURI__.path when build.withGlobalTauri in tauri.conf.json is set to true.
The APIs must be added to tauri.allowlist.path in tauri.conf.json:
{
"tauri": {
"allowlist": {
"path": {
"all": true, // enable all Path APIs
}
}
}
}
It is recommended to allowlist only the APIs you use for optimal bundle size and security.
References
BaseDirectory
Re-exports BaseDirectory
Variables
delimiter
Constdelimiter:";"|":"
Provides the platform-specific path segment delimiter:
;on Windows:on POSIX
Since: 1.0.0
Defined in: path.ts:660
sep
Constsep:"\\"|"/"
Provides the platform-specific path segment separator:
\on Windows/on POSIX
Since: 1.0.0
Defined in: path.ts:651
Functions
appCacheDir
appCacheDir():
Promise<string>
Returns the path to the suggested directory for your app's cache files.
Resolves to ${cacheDir}/${bundleIdentifier}, where bundleIdentifier is the value tauri.bundle.identifier is configured in tauri.conf.json.
Example
import { appCacheDir } from '@tauri-apps/api/path';
const appCacheDirPath = await appCacheDir();
Since: 1.2.0
Returns: Promise<string>
appConfigDir
appConfigDir():
Promise<string>
Returns the path to the suggested directory for your app's config files.
Resolves to ${configDir}/${bundleIdentifier}, where bundleIdentifier is the value tauri.bundle.identifier is configured in tauri.conf.json.
Example
import { appConfigDir } from '@tauri-apps/api/path';
const appConfigDirPath = await appConfigDir();
Since: 1.2.0
Returns: Promise<string>
appDataDir
appDataDir():
Promise<string>
Returns the path to the suggested directory for your app's data files.
Resolves to ${dataDir}/${bundleIdentifier}, where bundleIdentifier is the value tauri.bundle.identifier is configured in tauri.conf.json.
Example
import { appDataDir } from '@tauri-apps/api/path';
const appDataDirPath = await appDataDir();
Since: 1.2.0
Returns: Promise<string>
appDir
appDir():
Promise<string>
Returns the path to the suggested directory for your app config files.
Deprecated
since 1.2.0: Will be removed in 2.0.0. Use appConfigDir or appDataDir instead.
Since: 1.0.0
Returns: Promise<string>
appLocalDataDir
appLocalDataDir():
Promise<string>
Returns the path to the suggested directory for your app's local data files.
Resolves to ${localDataDir}/${bundleIdentifier}, where bundleIdentifier is the value tauri.bundle.identifier is configured in tauri.conf.json.
Example
import { appLocalDataDir } from '@tauri-apps/api/path';
const appLocalDataDirPath = await appLocalDataDir();
Since: 1.2.0
Returns: Promise<string>
appLogDir
appLogDir():
Promise<string>
Returns the path to the suggested directory for your app's log files.
Platform-specific
- Linux: Resolves to
${configDir}/${bundleIdentifier}/logs. - macOS: Resolves to
${homeDir}/Library/Logs/{bundleIdentifier} - Windows: Resolves to
${configDir}/${bundleIdentifier}/logs.
Example
import { appLogDir } from '@tauri-apps/api/path';
const appLogDirPath = await appLogDir();
Since: 1.2.0
Returns: Promise<string>
audioDir
audioDir():
Promise<string>
Returns the path to the user's audio directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_MUSIC_DIR. - macOS: Resolves to
$HOME/Music. - Windows: Resolves to
{FOLDERID_Music}.
Example
import { audioDir } from '@tauri-apps/api/path';
const audioDirPath = await audioDir();
Since: 1.0.0
Returns: Promise<string>
basename
basename(
path:string,ext?:string):Promise<string>
Returns the last portion of a path. Trailing directory separators are ignored.
Example
import { basename, resolveResource } from '@tauri-apps/api/path';
const resourcePath = await resolveResource('app.conf');
const base = await basename(resourcePath);
assert(base === 'app.conf');
Since: 1.0.0
Parameters
| Name | Type | Description |
|---|---|---|
path | string | - |
ext? | string | An optional file extension to be removed from the returned path. |
Returns: Promise<string>
cacheDir
cacheDir():
Promise<string>
Returns the path to the user's cache directory.
Platform-specific
- Linux: Resolves to
$XDG_CACHE_HOMEor$HOME/.cache. - macOS: Resolves to
$HOME/Library/Caches. - Windows: Resolves to
{FOLDERID_LocalAppData}.
Example
import { cacheDir } from '@tauri-apps/api/path';
const cacheDirPath = await cacheDir();
Since: 1.0.0
Returns: Promise<string>
configDir
configDir():
Promise<string>
Returns the path to the user's config directory.
Platform-specific
- Linux: Resolves to
$XDG_CONFIG_HOMEor$HOME/.config. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_RoamingAppData}.
Example
import { configDir } from '@tauri-apps/api/path';
const configDirPath = await configDir();
Since: 1.0.0
Returns: Promise<string>
dataDir
dataDir():
Promise<string>
Returns the path to the user's data directory.
Platform-specific
- Linux: Resolves to
$XDG_DATA_HOMEor$HOME/.local/share. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_RoamingAppData}.
Example
import { dataDir } from '@tauri-apps/api/path';
const dataDirPath = await dataDir();
Since: 1.0.0
Returns: Promise<string>
desktopDir
desktopDir():
Promise<string>
Returns the path to the user's desktop directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_DESKTOP_DIR. - macOS: Resolves to
$HOME/Desktop. - Windows: Resolves to
{FOLDERID_Desktop}.
Example
import { desktopDir } from '@tauri-apps/api/path';
const desktopPath = await desktopDir();
Since: 1.0.0
Returns: Promise<string>
dirname
dirname(
path:string):Promise<string>
Returns the directory name of a path. Trailing directory separators are ignored.
Example
import { dirname, appDataDir } from '@tauri-apps/api/path';
const appDataDirPath = await appDataDir();
const dir = await dirname(appDataDirPath);
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
path | string |
Returns: Promise<string>
documentDir
documentDir():
Promise<string>
Returns the path to the user's document directory.
Example
import { documentDir } from '@tauri-apps/api/path';
const documentDirPath = await documentDir();
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_DOCUMENTS_DIR. - macOS: Resolves to
$HOME/Documents. - Windows: Resolves to
{FOLDERID_Documents}.
Since: 1.0.0
Returns: Promise<string>
downloadDir
downloadDir():
Promise<string>
Returns the path to the user's download directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_DOWNLOAD_DIR. - macOS: Resolves to
$HOME/Downloads. - Windows: Resolves to
{FOLDERID_Downloads}.
Example
import { downloadDir } from '@tauri-apps/api/path';
const downloadDirPath = await downloadDir();
Since: 1.0.0
Returns: Promise<string>
executableDir
executableDir():
Promise<string>
Returns the path to the user's executable directory.
Platform-specific
- Linux: Resolves to
$XDG_BIN_HOME/../binor$XDG_DATA_HOME/../binor$HOME/.local/bin. - macOS: Not supported.
- Windows: Not supported.
Example
import { executableDir } from '@tauri-apps/api/path';
const executableDirPath = await executableDir();
Since: 1.0.0
Returns: Promise<string>
extname
extname(
path:string):Promise<string>
Returns the extension of the path.
Example
import { extname, resolveResource } from '@tauri-apps/api/path';
const resourcePath = await resolveResource('app.conf');
const ext = await extname(resourcePath);
assert(ext === 'conf');
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
path | string |
Returns: Promise<string>
fontDir
fontDir():
Promise<string>
Returns the path to the user's font directory.
Platform-specific
- Linux: Resolves to
$XDG_DATA_HOME/fontsor$HOME/.local/share/fonts. - macOS: Resolves to
$HOME/Library/Fonts. - Windows: Not supported.
Example
import { fontDir } from '@tauri-apps/api/path';
const fontDirPath = await fontDir();
Since: 1.0.0
Returns: Promise<string>
homeDir
homeDir():
Promise<string>
Returns the path to the user's home directory.
Platform-specific
- Linux: Resolves to
$HOME. - macOS: Resolves to
$HOME. - Windows: Resolves to
{FOLDERID_Profile}.
Example
import { homeDir } from '@tauri-apps/api/path';
const homeDirPath = await homeDir();
Since: 1.0.0
Returns: Promise<string>
isAbsolute
isAbsolute(
path:string):Promise<boolean>
Returns whether the path is absolute or not.
Example
import { isAbsolute } from '@tauri-apps/api/path';
assert(await isAbsolute('/home/tauri'));
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
path | string |
Returns: Promise<boolean>
join
join(...
paths:string[]):Promise<string>
Joins all given path segments together using the platform-specific separator as a delimiter, then normalizes the resulting path.
Example
import { join, appDataDir } from '@tauri-apps/api/path';
const appDataDirPath = await appDataDir();
const path = await join(appDataDirPath, 'users', 'tauri', 'avatar.png');
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
...paths | string[] |
Returns: Promise<string>
localDataDir
localDataDir():
Promise<string>
Returns the path to the user's local data directory.
Platform-specific
- Linux: Resolves to
$XDG_DATA_HOMEor$HOME/.local/share. - macOS: Resolves to
$HOME/Library/Application Support. - Windows: Resolves to
{FOLDERID_LocalAppData}.
Example
import { localDataDir } from '@tauri-apps/api/path';
const localDataDirPath = await localDataDir();
Since: 1.0.0
Returns: Promise<string>
logDir
logDir():
Promise<string>
Returns the path to the suggested log directory.
Deprecated
since 1.2.0: Will be removed in 2.0.0. Use appLogDir instead.
Since: 1.0.0
Returns: Promise<string>
normalize
normalize(
path:string):Promise<string>
Normalizes the given path, resolving '..' and '.' segments and resolve symbolic links.
Example
import { normalize, appDataDir } from '@tauri-apps/api/path';
const appDataDirPath = await appDataDir();
const path = await normalize(appDataDirPath, '..', 'users', 'tauri', 'avatar.png');
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
path | string |
Returns: Promise<string>
pictureDir
pictureDir():
Promise<string>
Returns the path to the user's picture directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_PICTURES_DIR. - macOS: Resolves to
$HOME/Pictures. - Windows: Resolves to
{FOLDERID_Pictures}.
Example
import { pictureDir } from '@tauri-apps/api/path';
const pictureDirPath = await pictureDir();
Since: 1.0.0
Returns: Promise<string>
publicDir
publicDir():
Promise<string>
Returns the path to the user's public directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_PUBLICSHARE_DIR. - macOS: Resolves to
$HOME/Public. - Windows: Resolves to
{FOLDERID_Public}.
Example
import { publicDir } from '@tauri-apps/api/path';
const publicDirPath = await publicDir();
Since: 1.0.0
Returns: Promise<string>
resolve
resolve(...
paths:string[]):Promise<string>
Resolves a sequence of paths or path segments into an absolute path.
Example
import { resolve, appDataDir } from '@tauri-apps/api/path';
const appDataDirPath = await appDataDir();
const path = await resolve(appDataDirPath, '..', 'users', 'tauri', 'avatar.png');
Since: 1.0.0
Parameters
| Name | Type |
|---|---|
...paths | string[] |
Returns: Promise<string>
resolveResource
resolveResource(
resourcePath:string):Promise<string>
Resolve the path to a resource file.
Example
import { resolveResource } from '@tauri-apps/api/path';
const resourcePath = await resolveResource('script.sh');
Since: 1.0.0
Parameters
| Name | Type | Description |
|---|---|---|
resourcePath | string | The path to the resource. Must follow the same syntax as defined in tauri.conf.json > tauri > bundle > resources, i.e. keeping subfolders and parent dir components (../). |
Returns: Promise<string>
The full path to the resource.
resourceDir
resourceDir():
Promise<string>
Returns the path to the application's resource directory.
To resolve a resource path, see the [[resolveResource | resolveResource API]].
Example
import { resourceDir } from '@tauri-apps/api/path';
const resourceDirPath = await resourceDir();
Since: 1.0.0
Returns: Promise<string>
runtimeDir
runtimeDir():
Promise<string>
Returns the path to the user's runtime directory.
Platform-specific
- Linux: Resolves to
$XDG_RUNTIME_DIR. - macOS: Not supported.
- Windows: Not supported.
Example
import { runtimeDir } from '@tauri-apps/api/path';
const runtimeDirPath = await runtimeDir();
Since: 1.0.0
Returns: Promise<string>
templateDir
templateDir():
Promise<string>
Returns the path to the user's template directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_TEMPLATES_DIR. - macOS: Not supported.
- Windows: Resolves to
{FOLDERID_Templates}.
Example
import { templateDir } from '@tauri-apps/api/path';
const templateDirPath = await templateDir();
Since: 1.0.0
Returns: Promise<string>
videoDir
videoDir():
Promise<string>
Returns the path to the user's video directory.
Platform-specific
- Linux: Resolves to
xdg-user-dirs'XDG_VIDEOS_DIR. - macOS: Resolves to
$HOME/Movies. - Windows: Resolves to
{FOLDERID_Videos}.
Example
import { videoDir } from '@tauri-apps/api/path';
const videoDirPath = await videoDir();
Since: 1.0.0
Returns: Promise<string>