Метод os.File.Name

Метод Name у объекта типа *os.File возвращает строку с именем файла, который был передан при открытии. Обычно это имя совпадает с тем, которое указывалось в вызове os.Open, os.Create или подобных функций. Метод не выполняет обращений к файловой системе и не гарантирует, что файл с таким именем всё ещё существует.

Синтаксис

gofile.Name() string

Метод не принимает параметров и возвращает строку с именем файла в том виде, в котором оно было задано при открытии.

Пример

Получим имя файла, открытого с помощью os.Open:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Open("example.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  defer file.Close()

  name := file.Name()
  fmt.Println(name)
}

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

go"example.txt"

Пример

Если файл был создан с помощью os.Create, то метод Name вернёт переданное имя:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Create("newfile.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  defer file.Close()

  name := file.Name()
  fmt.Println(name)
}

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

go"newfile.txt"

Пример

Метод Name также работает с временными файлами, возвращая их полное имя:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.CreateTemp("", "temp_*.txt")
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  defer file.Close()

  name := file.Name()
  fmt.Println(name)
}

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

go"/tmp/temp_1234567890.txt"

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

  • метод os.File.Stat,
    который возвращает информацию о файле
  • функцию os.Open,
    которая открывает файл для чтения
  • функцию os.Create,
    которая создаёт новый файл
  • функцию os.Getwd,
    которая возвращает текущую рабочую директорию