OOB アプリに取り組んでいます。
dynamic fileSystem = AutomationFactory.CreateObject("Scripting.FileSystemObject");
dynamic drives = fileSystem.Drives;
foreach (var drive in drives)
{
DriveCollection.Add(new Drive{
VolumeName = drive.VolumeName,
DriveLetter = drive.DriveLetter,
TotalSpace = drive.TotalSize,
FreeSpace = drive.FreeSpace
});
listBox.Items.Add(string.Format("{0} {1}", drive.DriveLetter, drive.VolumeName));
}
デバッガーで実行すると、「C」ドライブが列挙され、例外がスローされます。
"HRESULT からの例外: 0x800A0047"
デスクトップからアプリを実行すると、例外がスローされる前にドライブが列挙されません。
この例外から保護する方法に関するヒントはありますか? ドライブコンストラクターで参照する前に、「ドライブ」オブジェクトの有効性を何らかの方法でチェックしていますか?