检查我连接的手机c#中是否存在目录

本文关键字:是否 存在 连接 手机 检查 | 更新日期: 2023-09-27 18:07:00

当我插入iphone时,我可以访问名为DCIM的文件夹。

文件路径为"This PC'Will-iPhone'Internal Storage'DCIM"。

我的问题是如何检查该文件夹是否存在?我需要知道检查的方法,但不是在手机上,因为它的文件路径开头没有C'或H'或其他东西。

显然,我不能上传图像,但它只是在设备和驱动程序下列出"Will-iPhone"。

if (System.IO.Directory.Exists(@"''Will-iPhone'Internal Storage'DCIM'"))
        {
            MessageBox.Show("Yes");
        }

我也尝试过不同数量的反斜杠,一开始就有"这台电脑",但到目前为止似乎没有任何效果

任何帮助都是感激的。c#为佳

检查我连接的手机c#中是否存在目录

iPhone(和其他相机)是所谓的PTP设备,不能使用UNC路径访问。相反,您需要自己实现PTP或找到合适的库(根据快速Google搜索,这可能很难)。

除此之外,还有一个PTPdrive(没有从属关系),据称它将PTP设备映射到驱动器号。

附录:毕竟,iphone可以使用WIA访问,所以我记下了这个(添加一个COM参考Microsoft Windows Image Acquisition Library v2.0使用):

using System.Collections.Generic;
using System.IO;
using System.Linq;
using WIA;
public static class WiaCopy
{
    public static IEnumerable<IDeviceInfo> GetAppleDevices()
    {
        return new DeviceManager().DeviceInfos.Cast<IDeviceInfo>().Where(di =>
            di.Type == WiaDeviceType.CameraDeviceType
            && di.Properties["Manufacturer"].get_Value() == "Apple Inc."
            && di.Properties["Description"].get_Value() == "Apple iPhone");
    }
    public static IEnumerable<Item> GetImgItems(IDeviceInfo deviceInfo)
    {
        var device = deviceInfo.Connect();
        return device.Items.Cast<Item>().Where(i => i.Properties["Item Name"].get_Value().ToString().StartsWith("IMG"));
    }
    public static void TransferItem(Item item, string path)
    {
        // TODO: should use .mov for videos here
        var targetName = item.Properties["Item Name"].get_Value() + ".jpg";
        Directory.CreateDirectory(path);
        item.Transfer().SaveFile(Path.Combine(path, targetName));
    }
}

可以这样使用:

var savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Auto Import");
foreach (var iPhone in WiaCopy.GetAppleDevices())
{
    foreach (var imgItem in WiaCopy.GetImgItems(iPhone))
    {
        WiaCopy.TransferItem(imgItem, Path.Combine(savePath, iPhone.Properties["Name"].get_Value()));
    }
}

请注意,这只适用于图像,对于视频(尽管这些也以IMG开头),如果发现无法使用WIA复制它们。对于初学者,上面的内容应该足够了。

检查DCIM文件夹的属性,应该有完整的路径