C#代码 判断磁盘是不是U盘

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;using Microsoft.Win32;namespace UpData{ public partial class FindUsb { [DllImport("kernel32")] public FindUsb() { String[] logicDrivers = Environment.GetLogicalDrives(); ///返回驱动器名字 Console.WriteLine(String.Join(", ", logicDrivers)); int i=0; for(;i< logicDrivers.Length;i++) { switch (GetDriveType(logicDrivers[i])) { case 3: Console.WriteLine("root"); continue ; case 5: Console.WriteLine("CD"); continue; case 2: Console.WriteLine("USB"); continue; default: Console.WriteLine("unknown"); continue; } } } }}代码如上,现在VS报错:错误 1 属性“DllImport”在该声明类型中无效。它只在“method”声明中有效。错误 2 当前上下文中不存在名称“GetDriveType” 请教,这是什么问题?该如何解决?
2026年09月25日 02:02
有4个网友回答
网友(1):

using System.IO;

DriveInfo[] drive = DriveInfo.GetDrives();
for (int i = 0; i < drive.Length;i++ )
{
if (drive[i].IsReady)
{
drive[i].Name //名称
drive[i].TotalSize //大小
drive[i].TotalFreeSpace //剩余空间

}
}

网友(2):

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace WindowsApplication3
{
public class FindUSB
{
public static List FindUSBDriver()
{
List driverList = new List();
DriveInfo[] myAllDrives = DriveInfo.GetDrives();
foreach (DriveInfo myDrive in myAllDrives) {
if (myDrive.IsReady) {
if (myDrive.DriveType == DriveType.Removable) {
driverList.Add(myDrive.Name);
}
}
}

return driverList;
}
}
}

网友(3):

[DllImport("kernel32.dll")]

网友(4):

要声明你引用了哪个DLL好像。。。