回 帖 发 新 帖 刷新版面

主题:如何获取可用的盘符?

下面程序是想打印出每个盘符下第一级目录中的所有文件和子目录的名称 
static void Main(string[] args)
        {
           
            string[] s1,s2;
         

            s1= Directory.GetLogicalDrives();
            
            foreach (string t1 in s1)
            {
                Console.WriteLine("盘符={0} ",t1);

               // s2=Directory.GetFileSystemEntries(t1);
               //foreach(string t2 in s2) Console.WriteLine(t2);
          
                  }
        

        }
程序输出:
   盘符=A:\
   盘符=C:\
   盘符=D:\
   盘符=E:\
   盘符=F:\
   盘符=G:\
   盘符=H:\
   盘符=I:\


如果取消注释:
               // s2=Directory.GetFileSystemEntries(t1);
               //foreach(string t2 in s2) Console.WriteLine(t2);
程序则抛出异常,因为A:是软驱,G:、H:、I:是虚拟光驱,对它们调用GetFileSystemEntries()函数报错。现在我想在执行s2=Directory.GetFileSystemEntries(t1);语句之前,判断哪些是当前可用盘符,应该怎么做?(最好是不要用捕获异常)

回复列表 (共1个回复)

沙发

用DriveInfo获取盘符及其信息
根据DriveType判断其类型并最终决定是否需要获取子目录

我来回复

您尚未登录,请登录后再回复。点此登录或注册