有没有办法确定我的*文件是指向文件还是目录?
fileOrDir, err := os.Open(name)
// How do I know whether I have a file or directory?
Run Code Online (Sandbox Code Playgroud)
我希望能够读取有关该文件的统计信息(如果它只是一个文件),并且能够读取目录中的文件(如果它是一个目录)
fileOrDir.Readdirnames(0) // If dir
os.Stat(name) // If file
Run Code Online (Sandbox Code Playgroud)
pet*_*rSO 58
例如,
package main
import (
"fmt"
"os"
)
func main() {
name := "FileOrDir"
fi, err := os.Stat(name)
if err != nil {
fmt.Println(err)
return
}
switch mode := fi.Mode(); {
case mode.IsDir():
// do directory stuff
fmt.Println("directory")
case mode.IsRegular():
// do file stuff
fmt.Println("file")
}
}
Run Code Online (Sandbox Code Playgroud)
注意:
例子是Go 1.1.对于Go 1.0,请替换case mode.IsRegular():为case mode&os.ModeType == 0:.
use*_*691 31
这是另一种可能性:
import "os"
func IsDirectory(path string) (bool, error) {
fileInfo, err := os.Stat(path)
if err != nil{
return false, err
}
return fileInfo.IsDir(), err
}
Run Code Online (Sandbox Code Playgroud)
tst*_*tst 12
以下是如何在一行中进行测试:
if info, err := os.Stat(path); err == nil && info.IsDir() {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26113 次 |
| 最近记录: |