我已经研究了这个主题好几天了,我在MTP便携式设备(更具体地说是Galaxy S4)上管理文件时找不到任何东西。
我希望能够......
我真的想要复制MP3文件但是如果有一般的方法来复制和MTP支持的文件那将是非常棒的。我查看了Window Portable Device API,但是我找不到C#中有示例代码的地方。
任何博客,示例代码和文件都会非常有用。谢谢! :)
答案 0 :(得分:4)
我使用了一个名为MediaDevices的nugetpackage
这使我很容易将照片从Android手机复制到计算机上。
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();
}
}
}
答案 1 :(得分:3)
非常好的C#教程在此链接上wpd-transferring-content 在这个项目PodcastUtilities
中也可以找到一些灵感答案 2 :(得分:0)
还有一个名为 WPDApi 的 nuget 包,在我设法下载源代码(nuget 有问题)后,它对我来说效果很好: