获取IOException在C#中未处理

时间:2011-04-21 13:09:14

标签: c# ioexception

我有一个允许应用程序总共获得硬盘大小的功能。

        public static ulong GetLogicalDisk()
    {
        ulong num = 0L;
        string[] logicalDrives = Environment.GetLogicalDrives();
        for (int i = 0; i < logicalDrives.Length; i++)
        {
            System.IO.DriveInfo info = new System.IO.DriveInfo(logicalDrives[i].ToString());
            if (info.DriveType == System.IO.DriveType.Fixed)
            {
                num += (ulong)info.TotalSize; //Exception here.
                Console.WriteLine(info.TotalSize);
            }
        }
        Console.WriteLine(num);
        return num;
    }

当我尝试在C#中启动应用程序时,我在num += (ulong)info.TotalSize;上收到以下错误消息

IOException未处理

这里的任何人都可以帮我吗?有什么问题?

2 个答案:

答案 0 :(得分:1)

它可能正在尝试访问软盘驱动器或CD-ROM驱动器,但未安装任何物理介质。

来自the docs

  

发生I / O错误(例如,a   磁盘错误或驱动器没有准备好。)

你可以在异常发生之前打印出驱动器的Name - 我敢打赌这是你的A:驱动......

答案 1 :(得分:1)

我的猜测是您访问不存在的网络共享或未插入的CD ROM驱动器。

在阅读尺寸

之前,使用DriveInfo.IsReady检查驱动器是否可用