我有一些代码遍历目录以获取文件,对它们进行操作并使用IsDir()
来跳过目录。但是,目录未被正确检测到:
err = filepath.Walk(dir, func(path string, f os.FileInfo, err error) error {
if !f.IsDir() {
fileList = append(fileList, path)
}
return nil
})
错误:
Put app/javascripts: read public/app/javascripts: is a directory
我在OSX上。这是目录列表:
drwxr-xr-x@ 6 me staff 204 Sep 25 11:28 javascripts
有没有更好的方法来检测目录?
答案 0 :(得分:1)
我看着错误的目录(令人困惑的名字)。这是一个符号链接,这是有道理的。
答案 1 :(得分:1)
看起来该文件是一个目录,也是一个符号链接。要排除符合这两个条件的文件,您可以使用:
if !f.IsDir() && (f.Mode()&os.ModeSymlink) != os.ModeSymlink {
...
}