我需要实现连接到主机的 sftp 客户端,读取指定文件夹中的所有可用文件,然后检查特定文件是否与模式匹配并将其复制到根据本地目录。问题是我找不到办法。
我尝试使用 client.Walk 但无法找到一种方法来了解这是否是一个目录并跳过它:
walker := client.Walk(startDir)
for walker.Step() {
if err := walker.Err(); err != nil {
fmt.Fprintln(os.Stderr, err)
continue
}
filePath := walker.Path()
}
如何确定当前迭代是否是目录?
最佳答案
您可以使用Walker.Stat()
获取有关调用 Walker.Step()
访问的最新文件或目录的信息。它返回一个 os.FileInfo
类型的值它有一个 IsDir()
方法。
例如:
for walker.Step() {
if err := walker.Err(); err != nil {
fmt.Fprintln(os.Stderr, err)
continue
}
if fi := walker.Stat(); fi.IsDir() {
continue // Skip dir
}
// ...
}
关于go - 有没有办法确定当前步骤是否是目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55494698/