当前位置: 首页 > 知识库问答 >
问题:

获取有关逻辑驱动器的信息(UWP,C#,Windows)

金毅
2023-03-14
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]

[return: MarshalAs(UnmanagedType.Bool)]

static extern bool GetDiskFreeSpaceEx(String drivePath,
                                      out ULARGE_INTEGER availableBytes,
                                      out ULARGE_INTEGER totalBytes,
                                      out ULARGE_INTEGER totalFreeBytes);

[dllimport(“getmemory.dll”,EntryPoint=“getspacedata”,CallingConvention=CallingConvention.cdecl)]

内部静态外部int GetSpaceData(string drivePath,out ULARGE_INTEGER availableBytes,out ULARGE_INTEGER totalBytes,out ULARGE_INTEGER totalFreeBytes);

这是用于创建DLL文件的C文件:

__declspec(dllexport) int GetSpaceData(char* path, 
                                       ULARGE_INTEGER *ulFreeForUser, 
                                       ULARGE_INTEGER *ulTotal,
                                       ULARGE_INTEGER *ulFree)
{
        if (GetDiskFreeSpaceExA(path, ulFreeForUser, ulTotal, ulFree))
        {
            return 1;
        }
        return 0;
}

为什么我只能访问关于C驱动器(UWP)的数据?如何访问所有逻辑驱动器(UWP)的数据?

共有1个答案

拓拔俊艾
2023-03-14

您可以在package.appxmanifest.
中添加broadFileSystemAccess功能。您需要在设置>隐私>文件系统中进行配置。

那么请参考这个问题的答案,这个解决方案的描述如下:

  1. 调用DriveInfo.getDrives()检索计算机上所有逻辑驱动器的驱动器名。
  2. 遍历所有驱动器,并使用StorageFolder.GetFolderFromPathAsync()获取每个磁盘的根文件夹。
  3. 通过
    StorageItemContentProperties.RetrievePropertiesAsync()获取指定的属性。
 类似资料:
  • 问题内容: 我在Windows设备管理器中有一个带有USB设备的串行设备,其名称类似。设备在系统启动时并不总是抓住相同的COM端口,因此我的程序需要在启动时识别它。 我曾尝试使用RXTX枚举系统上的COM端口,但这没有用,因为仅返回COM名称(例如COM1,COM2等),我需要获取驱动程序制造商名称或驱动程序在设备管理器中显示的名称,并将其与COM名称相关联。 可以用Java轻松完成吗?(我会对支

  • 本小节介绍如何获取必要的FDS Bucket信息 选择生态云机房 登陆生态网站,点击其右上角,选择生态云机房,如下图所示: **注意:对于数据流相关的操作,需要保证所有的操作都使用上述选择的生态云机房** 进入生态云FDS(即文件存储)页面 进入文件存储页面,如下图所示: 查询FDS Bucket 信息 如下图,在需要导入数据的FDS Bucket属性中查看Bucket信息,包括名称和所有者; 这

  • 本文向大家介绍在C#中根据HardwareID获取驱动程序信息的实现代码,包括了在C#中根据HardwareID获取驱动程序信息的实现代码的使用技巧和注意事项,需要的朋友参考一下 近日在工作中需要根据设备的HardwareID来获取设备的驱动程序信息,比如驱动程序版本等。经过摸索,得到了两种不同的解决办法,两种办法各有千秋,写出来给大家分享。 1 使用WMI中的Win32_PnPSignedDri

  • 问题内容: 我有以下几行代码可从Android上的密钥存储中获取私钥 一切正常,除了当操作系统从Android 5.1.1升级到Android 6.0.1时,第3行将抛出第一个执行代码。但是之后它将再次正常运行。现在我的解决方法是执行该行两次。同时,我也想知道是否有更好的方法来避免该异常。 更新资料 异常跟踪 问题答案: 什么时候发生此错误,为什么? 回答: 加载Android密钥并从密钥库存储公

  • 问题内容: 当需要有关类型的信息时,可以使用: 得到: 要么: 得到: 现在,在Python文档中可以找到有关这些功能的信息,但是我想在终端/命令行中获取有关这些功能的信息。应该怎么做? 问题答案: 以python:为例,将为您提供函数的文档字符串。

  • 本文向大家介绍amazon-ec2 获取有关EC2实例的信息,包括了amazon-ec2 获取有关EC2实例的信息的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用以下方法获取有关EC2实例的信息: 您可以使用以下方法获取有关特定EC2实例的信息: 其中...包含一个或多个实例标识符。例如: aws ec2 describe-instances默认情况下,使用分页的输出。如果响应中包含密钥