1

ハードドライブのボリューム情報を含む文字列があります (メッセージはメッセージ ボックスに表示されます)

ドライブ E のボリュームは NEW VOLUME です
。ボリュームのシリアル番号は 9AE4-F468 です。

ダッシュなしで「9AE4F468」だけを読み込んでメッセージボックスに表示したい。

を使用してみSubstring(45,54)ましたが、プログラムが読み取っていないため、コンパイル エラーが発生し続けます。

ダッシュなしでその特定の部分文字列を取得するにはどうすればよいですか?

4

3 に答える 3

4

部分文字列を使用してディスク ボリュームのシリアル番号を取得しなければならない立場にいるのではなく、正しい文字列を直接取得する方法を使用できます。

次のコードを使用するには、アセンブリに への参照をSystem.Management追加してusing System.Managementから、コード ファイルの先頭に を追加する必要があります。

次に、このメソッドを追加します。

public string DiskVolumeSerialNumber(char driveLetter)
{
    ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + driveLetter +":\"");
    disk.Get();
    return disk["VolumeSerialNumber"].ToString();
}

次のように呼び出すことができます:

string serial = DiskVolumeSerialNumber('C');
Console.WriteLine(serial);
于 2013-08-11T08:57:06.100 に答える
0

最後の単語を探している場合は、シャドウ ウィザードが問題を解決します。

あなたがもっと持っているなら、あなたはできる

string lineNeeded = "Volume Serial Number is ";
string lastWordNoDash = 
    myLongMessage.Substring(myLongMessage.IndexOf(lineNeeded) + lineNeeded.length, 9).Replace("-", "");
于 2013-08-11T08:58:18.070 に答える