РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
512 of 1593 menu

Функция os.Chdir

Функция os.Chdir изменяет текущую рабочую директорию процесса на путь, переданный в качестве аргумента. В единственный параметр функция принимает строку с путем к новой директории. В случае успешного выполнения функция возвращает nil. Если произошла ошибка, например, директория не существует или недостаточно прав, возвращается ошибка типа error.

Синтаксис

os.Chdir(dir)

Пример

Давайте изменим текущую рабочую директорию на поддиректорию "data" и проверим результат с помощью os.Getwd:

package main import ( "fmt" "os" ) func main() { // Получаем текущую директорию oldDir, _ := os.Getwd() fmt.Println("Old dir:", oldDir) // Меняем директорию err := os.Chdir("data") if err != nil { fmt.Println("Error:", err) return } // Проверяем новую директорию newDir, _ := os.Getwd() fmt.Println("New dir:", newDir) }

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

"Old dir: /home/user/project" "New dir: /home/user/project/data"

Пример

Давайте попробуем изменить директорию на несуществующий путь и обработаем ошибку:

package main import ( "fmt" "os" ) func main() { // Пытаемся перейти в несуществующую директорию err := os.Chdir("nonexistent") if err != nil { fmt.Println("Error:", err) } }

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

"Error: chdir nonexistent: no such file or directory"

Пример

Давайте сохраним текущую директорию перед изменением, выполним работу в другой директории и вернемся обратно:

package main import ( "fmt" "os" ) func main() { // Сохраняем текущую директорию originalDir, _ := os.Getwd() fmt.Println("Original dir:", originalDir) // Переходим в новую директорию err := os.Chdir("data") if err != nil { fmt.Println("Error:", err) return } // Выполняем работу в новой директории currentDir, _ := os.Getwd() fmt.Println("Working in:", currentDir) // Возвращаемся обратно err = os.Chdir(originalDir) if err != nil { fmt.Println("Error returning:", err) return } backDir, _ := os.Getwd() fmt.Println("Back to:", backDir) }

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

"Original dir: /home/user/project" "Working in: /home/user/project/data" "Back to: /home/user/project"

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

  • функцию os.Getwd,
    которая возвращает текущую рабочую директорию
  • функцию os.Mkdir,
    которая создает новую директорию
  • функцию os.MkdirAll,
    которая создает директорию со всеми промежуточными поддиректориями
  • функцию filepath.Abs,
    которая возвращает абсолютный путь к файлу или директории
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить