Skip to main content

PathResolver

Struct PathResolver 

Source
pub struct PathResolver<R: Runtime>(/* private fields */);
Available on non-Android only.
Expand description

The path resolver is a helper class for general and application-specific path APIs.

Implementations§

Source§

impl<R: Runtime> PathResolver<R>

Source

pub fn file_name(&self, path: &str) -> Option<String>

Returns the final component of the Path, if there is one.

If the path is a normal file, this is the file name. If it’s the path of a directory, this is the directory name.

Returns None if the path terminates in ...

On Android this also supports checking the file name of content URIs, such as the values returned by the dialog plugin.

If you are dealing with plain file system paths or not worried about Android content URIs, prefer Path::file_name.

Source

pub fn audio_dir(&self) -> Result<PathBuf>

Returns the path to the user’s audio directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_MUSIC_DIR.
  • macOS: Resolves to $HOME/Music.
  • Windows: Resolves to {FOLDERID_Music}.
Source

pub fn cache_dir(&self) -> Result<PathBuf>

Returns the path to the user’s cache directory.

§Platform-specific
  • Linux: Resolves to $XDG_CACHE_HOME or $HOME/.cache.
  • macOS: Resolves to $HOME/Library/Caches.
  • Windows: Resolves to {FOLDERID_LocalAppData}.
Source

pub fn config_dir(&self) -> Result<PathBuf>

Returns the path to the user’s config directory.

§Platform-specific
  • Linux: Resolves to $XDG_CONFIG_HOME or $HOME/.config.
  • macOS: Resolves to $HOME/Library/Application Support.
  • Windows: Resolves to {FOLDERID_RoamingAppData}.
Source

pub fn data_dir(&self) -> Result<PathBuf>

Returns the path to the user’s data directory.

§Platform-specific
  • Linux: Resolves to $XDG_DATA_HOME or $HOME/.local/share.
  • macOS: Resolves to $HOME/Library/Application Support.
  • Windows: Resolves to {FOLDERID_RoamingAppData}.
Source

pub fn local_data_dir(&self) -> Result<PathBuf>

Returns the path to the user’s local data directory.

§Platform-specific
  • Linux: Resolves to $XDG_DATA_HOME or $HOME/.local/share.
  • macOS: Resolves to $HOME/Library/Application Support.
  • Windows: Resolves to {FOLDERID_LocalAppData}.
Source

pub fn desktop_dir(&self) -> Result<PathBuf>

Returns the path to the user’s desktop directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_DESKTOP_DIR.
  • macOS: Resolves to $HOME/Desktop.
  • Windows: Resolves to {FOLDERID_Desktop}.
Source

pub fn document_dir(&self) -> Result<PathBuf>

Returns the path to the user’s document directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_DOCUMENTS_DIR.
  • macOS: Resolves to $HOME/Documents.
  • Windows: Resolves to {FOLDERID_Documents}.
Source

pub fn download_dir(&self) -> Result<PathBuf>

Returns the path to the user’s download directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_DOWNLOAD_DIR.
  • macOS: Resolves to $HOME/Downloads.
  • Windows: Resolves to {FOLDERID_Downloads}.
Source

pub fn executable_dir(&self) -> Result<PathBuf>

Returns the path to the user’s executable directory.

§Platform-specific
  • Linux: Resolves to $XDG_BIN_HOME/../bin or $XDG_DATA_HOME/../bin or $HOME/.local/bin.
  • macOS: Not supported.
  • Windows: Not supported.
Source

pub fn font_dir(&self) -> Result<PathBuf>

Returns the path to the user’s font directory.

§Platform-specific
  • Linux: Resolves to $XDG_DATA_HOME/fonts or $HOME/.local/share/fonts.
  • macOS: Resolves to $HOME/Library/Fonts.
  • Windows: Not supported.
Source

pub fn home_dir(&self) -> Result<PathBuf>

Returns the path to the user’s home directory.

§Platform-specific
  • Linux: Resolves to $HOME.
  • macOS: Resolves to $HOME.
  • Windows: Resolves to {FOLDERID_Profile}.
  • iOS: Cannot be written to directly, use one of the app paths instead.
Source

pub fn picture_dir(&self) -> Result<PathBuf>

Returns the path to the user’s picture directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_PICTURES_DIR.
  • macOS: Resolves to $HOME/Pictures.
  • Windows: Resolves to {FOLDERID_Pictures}.
Source

pub fn public_dir(&self) -> Result<PathBuf>

Returns the path to the user’s public directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_PUBLICSHARE_DIR.
  • macOS: Resolves to $HOME/Public.
  • Windows: Resolves to {FOLDERID_Public}.
Source

pub fn runtime_dir(&self) -> Result<PathBuf>

Returns the path to the user’s runtime directory.

§Platform-specific
  • Linux: Resolves to $XDG_RUNTIME_DIR.
  • macOS: Not supported.
  • Windows: Not supported.
Source

pub fn template_dir(&self) -> Result<PathBuf>

Returns the path to the user’s template directory.

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_TEMPLATES_DIR.
  • macOS: Not supported.
  • Windows: Resolves to {FOLDERID_Templates}.
Source

pub fn video_dir(&self) -> Result<PathBuf>

Returns the path to the user’s video dir

§Platform-specific
  • Linux: Resolves to xdg-user-dirsXDG_VIDEOS_DIR.
  • macOS: Resolves to $HOME/Movies.
  • Windows: Resolves to {FOLDERID_Videos}.
Source

pub fn resource_dir(&self) -> Result<PathBuf>

Returns the path to the resource directory of this app.

§Platform-specific

Although we provide the exact path where this function resolves to, this is not a contract and things might change in the future

  • Windows: Resolves to the directory that contains the main executable.
  • Linux: When running in an AppImage, the APPDIR variable will be set to the mounted location of the app, and the resource dir will be ${APPDIR}/usr/lib/${exe_name}. If not running in an AppImage, the path is /usr/lib/${exe_name}. When running the app from src-tauri/target/(debug|release)/, the path is ${exe_dir}/../lib/${exe_name}.
  • macOS: Resolves to ${exe_dir}/../Resources (inside .app).
  • iOS: Resolves to ${exe_dir}/assets.
  • Android: Currently the resources are stored in the APK as assets so it’s not a normal file system path, we return a special URI prefix asset://localhost/ here that can be used with the file system plugin, with that, you can read the files through FsExt::fs like this: app.fs().read_to_string(app.path().resource_dir().unwrap().join("resource"));
Source

pub fn app_config_dir(&self) -> Result<PathBuf>

Returns the path to the suggested directory for your app’s config files.

Resolves to config_dir/${bundle_identifier}.

Source

pub fn app_data_dir(&self) -> Result<PathBuf>

Returns the path to the suggested directory for your app’s data files.

Resolves to data_dir/${bundle_identifier}.

Source

pub fn app_local_data_dir(&self) -> Result<PathBuf>

Returns the path to the suggested directory for your app’s local data files.

Resolves to local_data_dir/${bundle_identifier}.

Source

pub fn app_cache_dir(&self) -> Result<PathBuf>

Returns the path to the suggested directory for your app’s cache files.

Resolves to cache_dir/${bundle_identifier}.

Source

pub fn app_log_dir(&self) -> Result<PathBuf>

Returns the path to the suggested directory for your app’s log files.

§Platform-specific
  • Linux: Resolves to local_data_dir/${bundle_identifier}/logs.
  • macOS: Resolves to home_dir/Library/Logs/${bundle_identifier}
  • Windows: Resolves to local_data_dir/${bundle_identifier}/logs.
Source

pub fn temp_dir(&self) -> Result<PathBuf>

A temporary directory. Resolves to std::env::temp_dir.

Source§

impl<R: Runtime> PathResolver<R>

Source

pub fn resolve<P: AsRef<Path>>( &self, path: P, base_directory: BaseDirectory, ) -> Result<PathBuf>

Resolves the path with the base directory.

§Examples
use tauri::{path::BaseDirectory, Manager};
tauri::Builder::default()
  .setup(|app| {
    let path = app.path().resolve("path/to/something", BaseDirectory::Config)?;
    assert_eq!(path.to_str().unwrap(), "/home/${whoami}/.config/path/to/something");
    Ok(())
  });
Source

pub fn parse<P: AsRef<Path>>(&self, path: P) -> Result<PathBuf>

Parse the given path, resolving a BaseDirectory variable if the path starts with one.

§Examples
use tauri::Manager;
tauri::Builder::default()
  .setup(|app| {
    let path = app.path().parse("$HOME/.bashrc")?;
    assert_eq!(path.to_str().unwrap(), "/home/${whoami}/.bashrc");
    Ok(())
  });

Trait Implementations§

Source§

impl<R: Runtime> Clone for PathResolver<R>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<R> Freeze for PathResolver<R>

§

impl<R> !RefUnwindSafe for PathResolver<R>

§

impl<R> Send for PathResolver<R>

§

impl<R> Sync for PathResolver<R>

§

impl<R> Unpin for PathResolver<R>

§

impl<R> UnsafeUnpin for PathResolver<R>

§

impl<R> !UnwindSafe for PathResolver<R>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T