首页 > 解决方案 > 通过 .NET 访问电话文件

问题描述

我有一个通过 USB 连接到 Windows 机器的 OnePlus。

我可以通过文件资源管理器看到上面的文件系统对象。

文件资源管理器中的手机驱动器

手机通过两个位置暴露,D:驱动器作为 CDFS 安装并包含一些 OnePlus 驱动程序。

另一个,标记为ONEPLUS A6013包含操作系统文件系统。

如何访问ONEPLUS A6013从 .NET 标记的卷?

没有它返回的驱动器,DriveInfo.GetDrives()我无法通过文件资源管理器中的路径引用它?

This PC\ONEPLUS A6013\Internal shared storage\Documents

标签: c#.netwindowsusbmount-point

解决方案


我在这里找到了解决方案https://stackoverflow.com/a/60478271/4412472

需要MediaDevices nuget 包。

代码可能如下所示:

static void EnumerateOnePlusFiles()
{
    var deviceName = "ONEPLUS A5010";

    var devices = MediaDevice.GetDevices();
    var device = devices.First(d => d.FriendlyName == deviceName);

    device.Connect();

    var photoDir = device.GetDirectoryInfo(@"\Internal shared storage\DCIM\Camera");
    var files = photoDir.EnumerateFiles("*.*", SearchOption.AllDirectories);

    foreach (var file in files)
    {
        Console.WriteLine(file.FullName);
    }

    device.Disconnect();
    device.Dispose();
}

推荐阅读