在 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”
当我从桌面运行应用程序时,在引发异常之前没有枚举任何驱动器。
有关如何防止此异常的任何提示?在 Drive 构造函数中引用它之前以某种方式检查“驱动器”对象的有效性?