首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过其他文件导入时,仅使用ioutils ReadDir扫描当前目录中的文件

通过其他文件导入时,仅使用ioutils ReadDir扫描当前目录中的文件
EN

Stack Overflow用户
提问于 2018-06-04 03:05:22
回答 1查看 232关注 0票数 0

我在使用ioutils.ReadDir时遇到了问题,由于某些原因,它正在扫描项目根目录中的所有文件,而不是仅扫描当前目录中的文件。

./main.go

代码语言:javascript
复制
import (
    "myfolder/myfile"
)

func main() {
    myfile.MyFunction()
}

./myfolder/myfile.go

代码语言:javascript
复制
package myfile

func MyFunction() {
    files, err := ioutil.ReadDir(".")
    if err != nil {
        log.Fatal(err)
    }

    for _, f := range files {
        fi, err := os.Stat(f.Name())
        if err != nil {
            log.Fatal(err)
            return
        }

        switch mode := fi.Mode(); {
        case mode.IsDir():
            fmt.Printf("%#s  is a folder\n", f.Name())
        case mode.IsRegular():
            fmt.Printf("%#s is a file\n", f.Name())
        }
    }
}

我不太确定为什么会这样,我是新来的。我猜是因为它是通过main.go导入的。如何使其仅搜索./myfolder中的文件夹和文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 03:20:27

当前目录不是源文件的目录,而是执行程序的用户的当前目录。

如果从shell ( bash或Windows命令行)执行程序,该程序将从shell继承当前目录。

在执行程序或调用Go源文件中的os.Chdir("myfolder")之前,必须使用cd myfolder更改当前目录。(os.Chdir不会影响shell的当前目录)

如果你想以递归方式列出一个目录,你必须遍历它。参见filepath.Walk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50669983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档