当前位置: 首页 > 面试题库 >

如何使用golang获取Windows上所有驱动器的清单?

陈飞
2023-03-14
问题内容

我希望我的程序可以遍历Windows系统上的所有驱动器并搜索特定的文件类型。现在,我可以运行该程序并向其传递驱动器号,但是我希望它在所有驱动器上自动搜索。目前,我需要执行以下操作:

C:\> program.exe C:
C:\> program.exe D:
C:\> program.exe E:

我希望程序获取所有驱动器的列表并遍历所有驱动器,而无需用户指定驱动器号。使用Go可以吗?

类似于此问题,列出所有物理驱动器(Windows),但使用Go而不是C。


问题答案:

简便的方法是尝试打开Volker提到的“驱动器”文件夹来编写自己的功能。

import "os"

func getdrives() (r []string){
    for _, drive := range "ABCDEFGHIJKLMNOPQRSTUVWXYZ"{
        f, err := os.Open(string(drive)+":\\")
        if err == nil {
            r = append(r, string(drive))
            f.Close()
        }
    }
    return
}


 类似资料:
  • 这个元素有子元素,这些子元素又有子元素,依此类推。我想获取所有元素,这些元素都是元素的后代。谢谢

  • [dllimport(“getmemory.dll”,EntryPoint=“getspacedata”,CallingConvention=CallingConvention.cdecl)] 内部静态外部int GetSpaceData(string drivePath,out ULARGE_INTEGER availableBytes,out ULARGE_INTEGER totalBytes

  • 问题内容: 我尝试了很多方法,例如 和 而且转义序列也不起作用 问题答案: 所有你需要的是 :

  • 问题内容: 使用go-lang将网络共享映射到Windows驱动器的最佳方法是什么?此共享还需要用户名和密码。对于python,也提出了类似的问题。 问题答案: 到目前为止,Go中没有直接的方法可以执行此操作。我建议使用,这当然会限制Windows的功能,但这实际上是您所需要的。 因此,当您在Windows中打开命令提示符时,可以使用以下命令将网络共享映射到Windows驱动器: 代表您的Wind

  • 问题内容: 我正在尝试收集一个部门中的ID列表(数组) 给我一个jQuery对象,但不是一个真正的数组; 我可以 然后使用for循环将id属性放入另一个数组 或者我可以做 无论如何,我只是想看看jQuery中是否有速记来做到这一点。 问题答案: //但是我无法真正获取ID并将其分配给不在范围内的数组?(或者我可以) 是的你可以! 请注意,当您处于正确的轨道上时,Sighohwell和cletus都

  • 如何从google Drive获得通知响应中的事件名称? 例如:如果我关闭文件,那么事件名称作为响应,如close等。