GoLang 字符串与 Slices 的比较

我能够从目录中获取文件和文件夹列表,我编写了一个名为 isDir 的函数,如果路径是目录,则返回 True。


现在我的问题是我想确保列出的文件夹都不与切片中的字符串列表匹配。我的代码可能会跳过第一场比赛,但无论如何它都会打印出其他所有内容。我需要处理不能避免的文件夹。


代码适用于 Windows 7/8 目录,但如果提供,我也应该能够让 Linux 示例工作。


package main


import (

    "fmt"

    "io/ioutil"

    "os"

    "strings"

)


func isDir(pth string) (bool) {

         fi, err := os.Stat(pth)

         if err != nil {

                 return false

         }

         return fi.Mode().IsDir()

}


func main() {

    gcomputer := "localhost"

    location := fmt.Sprintf("\\\\%s\\c$\\Users\\", gcomputer)

    // Profiles to avoid

    avoid := []string{"Administrator", "Default", "Public"}

    // walk through files & folders in the directory (location) & return valid profiles

    files, _ := ioutil.ReadDir(location)

    for _, f := range files {

        fdir := []string{location, f.Name()}

        dpath := strings.Join(fdir, "")


        if isDir(dpath) {

            for _, iavoid := range avoid {

                for iavoid != f.Name() {

                    fmt.Println(dpath)

                    break

                }

                break

            }

        }

    }

}

我不介意使用第三方模块,我已经在这方面工作了太久并且开始失去冷静,这使得理解文档有点困难。任何提示将不胜感激。谢谢你。


慕森卡
浏览 173回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go