Go 以哪种方式处理对目录和文件的读取访问?我想读取一个文件夹,搜索 csv 文件并保存每个 csv 文件的内容,以便通过 http 请求发送内容。这是我的代码:func GetFileContent(fileName string) ([][]string, error) { file, err := os.Open(fileName) if err != nil { log.Println("There was an error:", err) return nil, err } defer file.Close() reader := csv.NewReader(file) reader.FieldsPerRecord = -1 csvFileContent, err := reader.ReadAll() if err != nil { log.Println("There was an error:", err) return nil, err } return csvFileContent, nil}func GetFiles(importPath string, fileExtension string) ([]string, error) { var result []string directory, err := os.Open(importPath) if err != nil { return result, err } defer directory.Close() files, err := directory.Readdir(-1) if err != nil { return result, err } for _, file := range files { if file.Mode().IsRegular() { if filepath.Ext(file.Name()) == "." + fileExtension { log.Println("Import Files: ", file.Name()) result = append(result, file.Name()) } } } if len(result) == 0 { log.Println("No import files of type " + fileExtension + " found.") log.Println("Import skipped.") } return result, nil}错误:打开:没有这样的文件或目录当我不使用应用程序的根文件夹/工作目录而是另一个(父)文件夹时出现?只要我使用 ./ 作为源文件夹,它就可以工作。
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
在这种情况下,您可以考虑使用更高级别的filepath.Glob()代替:
files, err := filepath.Glob(filepath.Join(importPath, "*.csv"))
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消