portable

package
v1.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Overview

Package portable 判定应用是否运行在便携模式。

便携模式的约定:可执行文件同级存在 data 目录,则应用的全部状态 (数据库、master key、配置、日志)都放在该目录内,使整个应用目录 可以整体搬迁到 U 盘或另一台机器。

本包只依赖标准库,因此 bootstrap / credential_svc / embedded 都能 导入它而不产生循环引用——credential_svc 无法反向导入 bootstrap, 这正是本包独立存在的原因。

Index

Constants

This section is empty.

Variables

View Source
var Dir = sync.OnceValue(func() string {
	exe, err := os.Executable()
	if err != nil {
		return ""
	}

	if resolved, err := filepath.EvalSymlinks(exe); err == nil {
		exe = resolved
	}
	return dirFor(exe)
})

Dir 返回便携数据目录,非便携模式返回 ""。

结果在进程生命周期内只解析一次:便携与否是安装形态的属性,不会在 运行中改变,而 AppDataDir() 调用频繁,每次都 os.Executable() + os.Stat 并无意义。代价是运行中新建/删除 data 目录需重启才生效。

Functions

func SameDir

func SameDir(first, second string) bool

SameDir 判断两个路径是否指向同一个目录。

通过 os.SameFile 比较文件系统身份,处理相对路径、. / ..、符号链接以及 Windows 大小写不敏感等文件系统语义。

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL