ホームページ > バックエンド開発 > Golang > Go を使用して Windows で利用可能なすべてのドライブを一覧表示するにはどうすればよいですか?

Go を使用して Windows で利用可能なすべてのドライブを一覧表示するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-29 21:15:30
オリジナル
402 人が閲覧しました

How do I list all available drives in Windows using Go?

Go を使用して Windows 上のすべてのドライブを一覧表示する方法

プログラムでは、検索など、システム上のさまざまなドライブと対話する機能が必要になることがよくあります。特定のファイルタイプの場合。ドライブ文字を手動で指定することもできますが、すべてのドライブを自動的に一覧表示する方が便利で効率的です。 Go では、これは GetLogicalDrives 関数を利用することで実現できます。

ドライブのリストの取得

GetLogicalDrives 関数は、使用可能なすべてのドライブを表すビット マップを返します。各ビットはドライブ文字に対応します。

<code class="go">package main

import (
    "fmt"
    "syscall"
)

func main() {

    kernel32, _ := syscall.LoadLibrary("kernel32.dll")
    getLogicalDrivesHandle, _ := syscall.GetProcAddress(kernel32, "GetLogicalDrives")

    var drives []string

    if ret, _, callErr := syscall.Syscall(uintptr(getLogicalDrivesHandle), 0, 0, 0, 0); callErr != 0 {
        // handle error
    } else {
        drives = bitsToDrives(uint32(ret))
    }

    fmt.Printf("%v", drives)

}

func bitsToDrives(bitMap uint32) (drives []string) {
    availableDrives := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

    for i := range availableDrives {
        if bitMap & 1 == 1 {
            drives = append(drives, availableDrives[i])
        }
        bitMap >>= 1
    }

    return
}</code>
ログイン後にコピー

bitsToDrives() 関数は、ビット マップをドライブ文字の文字列配列に変換します。

ドライブの反復処理

ドライブのリストを取得したら、それらを反復処理して、ファイルの検索などの必要なアクションを実行できます。

Go を使用して次の手順に従うと、効率的にドライブのリストを取得できます。 Windows 上のすべてのドライブをリストし、必要に応じてそれらに対して操作を実行します。

以上がGo を使用して Windows で利用可能なすべてのドライブを一覧表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート