Функция 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,
которая возвращает абсолютный путь к файлу или директории