goLang 檔案操作之一

2021-09-14 04:06:27 字數 2840 閱讀 9116

go 官方庫的檔案操作分散在多個包中,感覺有點亂,比如os,ioutil包,基於別人總結的基礎上簡單總結一下
1.1建立空檔案
package main

import (

"os"

"log"

)var (

newfile *os.file

err error

)func main()

/** 檢查錯誤

*/func checkerr(err error)

}

1.2 truncate 檔案
package main

import (

"log"

"os"

)func main()

func checkerr(err error)

}

1.3 得到檔案資訊
package main

import (

"log"

"os"

"fmt"

)var (

fileinfo os.fileinfo

err error

)func main()

func checkerr(err error)

}

執行結果

1.4 重新命名和移動

renamemove原理一樣
package main

import (

"log"

"os"

)func main()

func checkerr(err error)

}

1.5 刪除檔案
package main

import (

"log"

"os"

)func main()

func checkerr(err error)

}

1.6 開啟檔案
package main

import (

"log"

"os"

)func main()

func checkerr(err error)

}

1.7檢查檔案是否存在
package main

import (

"log"

"os"

)func main()

}log.println("file does exist. file information:")

log.println(fileinfo)

}

1.8 檢查讀寫許可權
package main

import (

"os"

"log"

)func main()

if os.isnotexist(err)

}file.close()

// 測試讀許可權

file, err = os.openfile("test.txt", os.o_rdonly, 0666)

if err != nil

}file.close()

}

1.9改變許可權、擁有者、時間戳
package main

import (

"os"

"log"

"time"

"fmt"

)func main()

func checkerr(err error)

}

1.10 硬鏈結和軟鏈結
乙個普通的檔案是乙個指向硬碟的inode的地方。

硬鏈結建立乙個新的指標指向同乙個地方。只有所有的鏈結被刪除後檔案才會被刪除。硬鏈結只在相同的檔案系統中才工作。你可以認為乙個硬鏈結是乙個正常的鏈結。

symbolic link,又叫軟連線,和硬鏈結有點不一樣,它不直接指向硬碟中的相同的地方,而是通過名字引用其它檔案。他們可以指向不同的檔案系統中的不同檔案。並不是所有的作業系統都支援軟鏈結。

package main

import (

"os"

"log"

"fmt"

)func main()

fmt.println("creating sym")

// create a symlink

err = os.symlink("original.txt", "original_sym.txt")

if err != nil

// lstat返回乙個檔案的資訊,但是當檔案是乙個軟鏈結時,它返回軟鏈結的資訊,而不是引用的檔案的資訊。

// symlink在windows中不工作。

fileinfo, err := os.lstat("original_sym.txt")

if err != nil

fmt.printf("link info: %+v", fileinfo)

//改變軟鏈結的擁有者不會影響原始檔案。

err = os.lchown("original_sym.txt", os.getuid(), os.getgid())

if err != nil

}

golang 檔案操作

檔案開啟模式 const o rdonly int syscall.o rdonly 唯讀模式開啟檔案 o wronly int syscall.o wronly 只寫模式開啟檔案 o rdwr int syscall.o rdwr 讀寫模式開啟檔案 o create int syscall.o c...

go lang 讀寫檔案操作

參考備份 寫程式離不了檔案操作,這裡總結下 go語言檔案操作。一 建立與開啟 建立檔案函式 func create name string file file,err error func newfile fd int,name string file 具體見官網 開啟檔案函式 func open ...

Golang 檔案讀寫操作

package main import fmt io log os path filepath strconv func main strfile strdir testfile.txt fmt.println file to open is strfile 開啟檔案,如果沒有,那麼建立,設定為讀寫...