<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                文件操作的大多數函數都是在os包里面 ## 目錄操作 **創建目錄** ``` func Mkdir(name string, perm FileMode) error ``` 創建名稱為name的目錄,權限設置是perm,例如0777。 ``` package main import ( "fmt" "os" ) func main(){ err := os.Mkdir("readme", 0777) if err != nil{ fmt.Println(err) } } // 當目錄存在時報錯: // mkdir readme: Cannot create a file when that file already exists. ``` **創建多級目錄** ``` func MkdirAll(path string, perm FileMode) error ``` 根據path創建多級子目錄 ``` package main import ( "fmt" "os" ) func main(){ // 目錄存在不會報錯 err := os.MkdirAll("readme/first/second", 0777) if err != nil{ fmt.Println(err) } } ``` **刪除目錄/文件** ``` func Remove(name string) error ``` 刪除名稱為name的目錄,當目錄下有文件或者其他目錄會出錯。 ``` package main import ( "fmt" "os" ) func main(){ err := os.Remove("readme") if err != nil{ fmt.Println(err) } } // 刪除不為空的目錄:remove readme: The directory is not empty. ``` **刪除多級目錄** ``` func RemoveAll(path string) error ``` 刪除path(包括)及其下級子目錄。 ``` package main import ( "fmt" "os" ) func main(){ err := os.RemoveAll("readme") if err != nil{ fmt.Println(err) } } ``` ## 文件操作 **創建文件** ``` func Create(name string) (file *File, err Error) ``` 根據提供的文件名創建新的文件,返回一個文件對象,默認權限是0666的文件,返回的文件對象是可讀寫的 ``` package main import ( "fmt" "os" ) func main(){ file, err := os.Create("readme.txt") if err != nil{ fmt.Println(err) } fmt.Println(file) // &{0xc0000cc780} } ``` 如果文件已經存在則會刪除源文件重新創建 **打開文件** ``` func OpenFile(name string, flag int, perm uint32) (file *File, err Error) ``` 打開名稱為name的文件,flag是打開的方式:只讀、讀寫等,perm是權限。 flag 標簽如下 ``` const ( O_RDONLY int = syscall.O_RDONLY // 只讀模式打開文件 O_WRONLY int = syscall.O_WRONLY // 只寫模式打開文件 O_RDWR int = syscall.O_RDWR // 讀寫模式打開文件 O_APPEND int = syscall.O_APPEND // 寫操作時將數據附加到文件尾部 O_CREATE int = syscall.O_CREAT // 如果不存在將創建一個新文件 O_EXCL int = syscall.O_EXCL // 和O_CREATE配合使用,文件必須不存在 O_SYNC int = syscall.O_SYNC // 打開文件用于同步I/O O_TRUNC int = syscall.O_TRUNC // 如果可能,打開時清空文件 ) ``` ``` func Open(name string) (file *File, err Error) ``` 該方法打開一個名稱為name的文件,但是只讀方式,內部實現調用了OpenFile。 **寫文件** 寫入byte類型的信息到文件 ``` func (file *File) Write(b []byte) (n int, err Error) ``` 在指定位置開始寫入byte類型的信息。 ``` func (file *File) WriteAt(b []byte, off int64) (n int, err Error) ``` 寫入string信息到文件。 ``` func (file *File) WriteString(s string) (ret int, err Error) ``` **讀文件** 讀取數據到b中 ``` func (file *File) Read(b []byte) (n int, err Error) ``` 從off開始讀取數據到b中。 ``` func (file *File) ReadAt(b []byte, off int64) (n int, err Error) ``` **獲取文件信息** ``` package main import ( "fmt" "log" "os" ) var ( fileInfo os.FileInfo err error ) func main() { // 如果文件不存在,則返回錯誤 fileInfo, err = os.Stat("index.html") if err != nil { log.Fatal(err) } fmt.Println("文件名稱:", fileInfo.Name()) fmt.Println("文件大小:", fileInfo.Size()) fmt.Println("文件權限:", fileInfo.Mode()) fmt.Println("最后修改時間:", fileInfo.ModTime()) fmt.Println("是否是目錄: ", fileInfo.IsDir()) } ``` 打印結果 ``` 文件名稱: index.html 文件大小: 2677 文件權限: -rw-rw-rw- 最后修改時間: 2021-03-11 19:25:20.0098714 +0800 CST 是否是目錄: false ``` 移動和重命名 ``` package main import ( "log" "os" ) func main() { originalPath := "index.html" newPath := "test/index.html" // 移動到同一目錄下為重命名 err := os.Rename(originalPath, newPath) if err != nil { log.Fatal(err) } } ``` **判斷文件是否存在** ``` package main import ( "fmt" "log" "os" ) func main() { // 文件不存在則返回error fileInfo, err := os.Stat("./index2.html") if err != nil { if os.IsNotExist(err) { log.Fatal("File does not exist.") } } fmt.Println("File does exist. File information:") fmt.Println(fileInfo) } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看