gpt4 book ai didi

c# - 各种 GetLogicalDrives 方法之间有什么区别,哪种方法更好用

转载 作者:太空狗 更新时间:2023-10-30 01:29:00 29 4
gpt4 key购买 nike

我试图获取硬盘驱动器的名称或盘符,但仍然一头雾水,因为这里有几个函数可以使用。下面三个获取硬盘盘符的代码有什么区别?哪个更好用?

Directory.GetLogicalDrives()
Environment.GetLogicalDrives()
DriveInfo.GetDrives()

结果:get hard drive letter

最佳答案

他们都调用这段代码,这只是 Win32 API 的包装器 GetLogicalDrives function

new EnvironmentPermission(PermissionState.Unrestricted).Demand();

int drives = Win32Native.GetLogicalDrives();
if (drives == 0)
__Error.WinIOError();
uint d = (uint)drives;
int count = 0;
while (d != 0)
{
if (((int)d & 1) != 0) count++;
d >>= 1;
}
String[] result = new String[count];
char[] root = new char[] { 'A', ':', '\\' };
d = (uint)drives;
count = 0;
while (d != 0)
{
if (((int)d & 1) != 0)
{
result[count++] = new String(root);
}
d >>= 1;
root[0]++;
}
return result;

异常(exception)情况是 GetDrives将结果传递给 DriveInfo

// Directory.GetLogicalDrives demands unmanaged code permission
String[] drives = Directory.GetLogicalDrives();
DriveInfo[] di = new DriveInfo[drives.Length];
for(int i=0; i<drives.Length; i++)
di[i] = new DriveInfo(drives[i]);
return di;

所以答案是,没有明显的差异


引用文献

关于c# - 各种 GetLogicalDrives 方法之间有什么区别,哪种方法更好用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55059387/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com