资源简介
鉴于大家的需要,上传MTP文件拷贝传输代码For C#,代码仅提供参考,希望对大家有所帮助;
MTP设备文件并无盘符,是在MTP设备ID下,以树形结构存在的,操作时,我们其实操作的是文件的镜像,文件操作全部使用的是文件ID.
MTP文件修改不存在修改功能,全部是本地修改然后覆盖MTP设备上的文件;
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Text;
using PortableDeviceApiLib;
namespace WindowsFormsApplication13
{
public class PortableDeviceFile : PortableDeviceobject
{
PortableDeviceClass ppDevice = new PortableDeviceClass();
public PortableDeviceFile(string id string name)
: base(id name)
{ }
public PortableDeviceFolder GetContents()
{
var root = new PortableDeviceFolder(“DEVICE“ “DEVICE“);
IPortableDeviceContent content;
ppDevice.Content(out content);
EnumerateContents(ref content root);
return root;
}
private static void EnumerateContents(ref IPortableDeviceContent content PortableDeviceFolder parent)
{
// Get the properties of the object
IPortableDeviceProperties properties;
content.Properties(out properties);
// Enumerate the items contained by the current object
IEnumPortableDeviceobjectIDs objectIds;
content.Enumobjects(0 parent.Id null out objectIds);
uint fetched = 0;
do
{
string objectId;
objectIds.Next(1 out objectId ref fetched);
if (fetched > 0)
{
var currentobject = Wrapobject(properties objectId);
parent.Files.Add(currentobject);
if (currentobject is PortableDeviceFolder)
{
EnumerateContents(ref content (PortableDeviceFolder)currentobject);
}
}
} while (fetched > 0);
}
private static PortableDeviceobject Wrapobject(IPortableDeviceProperties properties string objectId)
{
IPortableDeviceKeyCollection keys;
properties.GetSupportedProperties(objectId out keys);
IPortableDeviceValues values;
properties.GetValues(objectId keys out values);
// Get the name of the object
string name;
var property = new _tagpropertykey();
property.fmtid = new Guid(0xEF6B490D 0x5CD8 0x437A 0xAF 0xFC
0xDA 0x8B 0x60 0xEE 0x4A 0x3C);
property.pid = 4;
values.GetStringValue(property out name);
// Get the type of the object
Guid contentType;
property = new _tagpropertykey();
property.fmtid = new Guid(0xEF6B490D 0x5CD8 0x437A 0xAF 0xFC
0xDA 0x8B 0x60 0xEE 0x4A 0x3C);
property.pid = 7;
values.GetGuidValue(property out contentType);
var folderType = new Guid(0x27E2E392 0xA111 0x48E0 0xAB 0x0C
0xE1 0x77 0x05 0xA0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32768 2008-01-09 10:02 Mtp For C#\Interop.PortableDeviceApiLib.dll
文件 28672 2008-01-09 12:15 Mtp For C#\Interop.PortableDeviceTypesLib.dll
文件 9449 2014-01-08 15:15 Mtp For C#\MTP.CS
文件 4168 2014-01-03 16:33 Mtp For C#\PortableDeviceFile.cs
文件 433 2014-01-03 16:19 Mtp For C#\PortableDeviceFolder.cs
文件 422 2014-01-03 16:18 Mtp For C#\PortableDeviceob
目录 0 2014-01-08 15:17 Mtp For C#
----------- --------- ---------- ----- ----
75912 7
- 上一篇:C#操作手持机识别RFID电子标签
- 下一篇:会员积分管理系统C#版
相关资源
- FileUpload控件上传文件客户端验证格式
- c#文件发送一个服务器多个客户端
- C#使用SMTP服务器发送邮件
- C# 基于SMTP协议和SOCKET发送邮件及附件
- TEXT文本批量转shapefile文件
- C# 实现简单邮件SMTP和POP3客户端 联系
-
Grasshopper li
nk files制作Grasshopper电池 - SQL Server Profiler with C#
- C#编写简单的邮件客户端支持POP3,S
- c# SMTP邮件发送程序,如不好用,我撞
- C# FileEventWatcher文件监控源代码
- PastePicture.dll WinForm 复制.剪切.粘贴.拖
- C#写的仿照Windows资源管理器的小程序
- C# socket smtp 邮件发送(支持SSL)源码
- C# FileStream寫入檔案、StreamReader讀取、
- C#操作shapfile
- C# 文件編碼轉換器FileCodeConvert
- c# 对象拷贝属性 Copy方法
- 内部邮件收发系统(不支持smtp)
- Messgebox移动到屏幕中心(openFileDialo
- TCP-File-Transfer TCP文件传输
- TCPFILE C#TCP多线程异步传输 C#开发的服
- FileAutoCopy 文件自动复制程序
- Visual.Assist.X.V10.6.1812.Cracked VA_X.dll fi
- C#实现邮件的发送和接收smtp发送+pop
- 图片上传.rarC#如何使用input[type=file]进
- wpf 扫描文件夹下面所有图片 并加载
- C#读取并显示shapefile文件
- C#调用SMTP发送文本内容发邮件
- C# 调用SMTP发送有附件的邮件
评论
共有 条评论