c# - 通过 .NET 访问电话文件
问题描述
我有一个通过 USB 连接到 Windows 机器的 OnePlus。
我可以通过文件资源管理器看到上面的文件系统对象。
手机通过两个位置暴露,D:
驱动器作为 CDFS 安装并包含一些 OnePlus 驱动程序。
另一个,标记为ONEPLUS A6013
包含操作系统文件系统。
如何访问ONEPLUS A6013
从 .NET 标记的卷?
没有它返回的驱动器,DriveInfo.GetDrives()
我无法通过文件资源管理器中的路径引用它?
This PC\ONEPLUS A6013\Internal shared storage\Documents
解决方案
我在这里找到了解决方案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();
}
推荐阅读
- ruby-on-rails - 覆盖 ActiveAdmin 中的操作
- arrays - 通过 Google API 更新 Google Drive 中的 XML 文件
- c++ - GLSL Shader 没有渲染任何东西,VAO 被填充,VBO 被顶点填充
- cloudflare - Cloudflare Stream API Webhook 不工作
- javascript - 有没有办法命名同一个案例,但什么时候点击了 2 次?
- c++ - 我的程序在 Windows 机器上崩溃,但在 Linux 上运行良好
- python - Pyspark - 调用 pandas_udf 时出错,结果返回 Series.interpolate()
- python - 基于 x 轴上给出的新间隔的累积总和的阶梯图
- java - 如何在 Reactor 中将 Context 与 flatMap() 一起使用?
- azure - 如何识别 ADO Pipelines 中管道的 AzureDevOps id?