如何在MTP便携式设备上管理文件
本文关键字:管理文件 便携式 MTP | 更新日期: 2023-09-27 18:29:26
我已经研究这个主题好几天了,在MTP便携式设备(更具体地说是Galaxy S4)上找不到任何关于管理文件的信息。
我想能够…
- 将文件从PC复制到MTP设备
- 将文件从MTP设备复制到PC
- 从MTP设备删除文件
我真的很想复制MP3文件,但如果有一种通用的复制方法和MTP支持的文件,那将是很棒的。我已经研究了Window Portable Device API,但在C#中找不到任何有示例代码的地方。
任何博客、示例代码和文件都会非常有用。谢谢!:)
我使用了一个名为MediaDevices 的nugetpackage
这让我可以很容易地将照片从安卓手机复制到电脑上。
public class Program
{
static void Main(string[] args)
{
var devices = MediaDevice.GetDevices();
using (var device = devices.First(d => d.FriendlyName == "Galaxy Note8"))
{
device.Connect();
var photoDir = device.GetDirectoryInfo(@"'Phone'DCIM'Camera");
var files = photoDir.EnumerateFiles("*.*", SearchOption.AllDirectories);
foreach (var file in files)
{
MemoryStream memoryStream = new System.IO.MemoryStream();
device.DownloadFile(file.FullName, memoryStream);
memoryStream.Position = 0;
WriteSreamToDisk($@"D:'PHOTOS'{file.Name}", memoryStream);
}
device.Disconnect();
}
}
static void WriteSreamToDisk(string filePath, MemoryStream memoryStream)
{
using (FileStream file = new FileStream(filePath, FileMode.Create, System.IO.FileAccess.Write))
{
byte[] bytes = new byte[memoryStream.Length];
memoryStream.Read(bytes, 0, (int)memoryStream.Length);
file.Write(bytes, 0, bytes.Length);
memoryStream.Close();
}
}
}
还有一个名为WPDApi的nuget包,在我设法下载了源代码(nuget有问题)后,它对我来说效果很好:
https://github.com/Duke-fleed/WPDApi