Функция os.UserCacheDir

Функция os.UserCacheDir возвращает путь к директории, которая предназначена для хранения кэшированных данных текущего пользователя. Эта директория используется для временных файлов, которые могут быть пересозданы при необходимости, в отличие от пользовательских настроек, которые хранятся в директории, возвращаемой функцией os.UserConfigDir. Функция не принимает параметров и возвращает строку с путем и ошибку, если определить директорию не удалось.

Синтаксис

goos.UserCacheDir()

Пример

Давайте получим путь к директории для кэша пользователя:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.UserCacheDir()
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(dir)
}

Результат выполнения кода (на Unix-системах):

go"/home/user/.cache"

Результат выполнения кода (на Windows):

go"C:\\Users\\user\\AppData\\Local"

Пример

Давайте создадим файл в директории для кэша и запишем в него данные:

gopackage main

import (
  "fmt"
  "os"
  "path/filepath"
)

func main() {
  cacheDir, err := os.UserCacheDir()
  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  filePath := filepath.Join(cacheDir, "myapp", "cache.txt")
  err = os.MkdirAll(filepath.Dir(filePath), 0755)
  if err != nil {
    fmt.Println("Error creating directory:", err)
    return
  }

  data := []byte("cached data")
  err = os.WriteFile(filePath, data, 0644)
  if err != nil {
    fmt.Println("Error writing file:", err)
    return
  }

  fmt.Println("File created:", filePath)
}

Результат выполнения кода:

go"File created: /home/user/.cache/myapp/cache.txt"

Смотрите также

  • функцию os.UserHomeDir,
    которая возвращает путь к домашней директории пользователя
  • функцию os.UserConfigDir,
    которая возвращает путь к директории для настроек пользователя
  • функцию os.TempDir,
    которая возвращает путь к директории для временных файлов
  • функцию os.Executable,
    которая возвращает путь к исполняемому файлу текущего процесса