以上用的是ioutil.readdir的方法,然後用range遍歷目錄節點的listpackage main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"log"
"os"
)//檔案目錄樹形結構節點
type dirtreenode struct
var icount int = 0
//遞迴遍歷檔案目錄
func getdirtree(pathname string) (dirtreenode, error)
var tree, childnode dirtreenode
tree.name = pathname
var name, fullname string
for _, filedir := range rd
} else
} return tree, nil
}//遞迴列印檔案目錄
func printdirtree(tree dirtreenode, prefix string) }}
func processline(line byte)
// read one file and use hookfn to process each line
func readline(filepth string, hookfn func(byte)) error
defer f.close()
bfrd := bufio.newreader(f)
for
return err
} }}func main()
fmt.printf("\n")
fmt.println("file count:", icount)
printdirtree(tree, "")
}
func readdir(dirname string) (os.fileinfo, error)
讀取 dirname 指定的目錄, 並返回乙個根據檔名進行排序的目錄節點列表。
遍歷的過程可以用另乙個方法:
使用filepath.walk包中的功能path/filepath 它遍歷乙個檔案樹
filepath.walkfunc,為樹中的每個檔案或目錄呼叫乙個型別的函式,包括根。
檔案按詞彙順序走。
不遵循符號鏈結。
此示例中的**列出了以當前目錄為根的檔案樹中所有檔案和目錄的路徑和大小。
另:err := filepath.walk(".",
func(path string, info os.fileinfo, err error) error
fmt.println(path, info.size())
return nil
})if err != nil
關於寫檔案
writefile方法:
func check(e error)
}
writefile將data寫入到filename指定的檔案中。如果檔案不存在,writefile將會建立該檔案,且檔案的許可權是perm;如果檔案存在,先清空檔案內容再寫入。var d1 = byte(wiretestring);
err2 := ioutil.writefile(「./output2.txt」, d1, 0666) //寫入檔案(位元組陣列)
check(err2)
writestring方法:
另:var teststring = 「測試n」
var filename = 「./output1.txt」;
var f *os.file
var err1 error;
if checkfilei***ist(filename) else
check(err1)
n, err1 := io.writestring(f, teststring ) //寫入檔案(字串)
check(err1)
fmt.printf(「寫入 %d 個位元組n」, n);
golang byte和string相互轉換:
str2 := "hello"data2 := byte(str2)
fmt.println(data2)
str2 = string(data2[:])
golang 遍歷資料夾和檔案
示例 package main import fmt io ioutil os strings 獲取指定目錄下的所有檔案和目錄 func getfilesanddirs dirpth string files string,dirs string,err error pthsep string os...
java遍歷資料夾並統計該檔案資料夾數
檔案裡完成了新檔案的建立寫入,以及複製 完成指定目錄的複製,使用當前工作目錄出現問題,因為檔案被開啟無法複製 public class file005 writer.close reader.close writer2.close 檔案目錄複製的方法,統計資料夾的個數 private static ...
遍歷資料夾
function search path string filename string ball boolean false string varsearchrec tsearchrec begin if findfirst path faanyfile,searchrec 0 then begin...