【问题标题】:How to handle Mediadevices FriendlyName when null为空时如何处理 Mediadevices FriendlyName
【发布时间】:2021-08-14 00:36:02
【问题描述】:

我正在使用 MediaDevice 库,当设备名称与 FriendlyName 匹配时一切正常, 我的问题是当我没有将设备插入 PC 或者我在 FriendlyName 中更改了一个简单的字母时

var devicess = MediaDevice.GetDevices();
using (var device = devicess.First(d => d.FriendlyName == "MyCellPhone"))
{
    device.Connect();

    // get list of available storages (SD-Card, Internal Flash, ...)
    var objects = device.FunctionalObjects(FunctionalCategory.Storage);
    MediaStorageInfo infoss = GetStorageInfo(objects.First());
    ulong size = infoss.FreeSpaceInBytes;

    device.Disconnect();
}

例如,如果我的智能手机名为“samsung”,我将“samsam”放在这里

 using (var device = devicess.First(d => d.FriendlyName == "samsam")) (instead of samsung)

应用程序崩溃,如果将其留空或我在未连接手机的情况下运行代码,也会发生同样的情况。 我尝试了一些尝试 {} catch{} 但没有结果。 任何人都可以帮助我吗? 谢谢。

【问题讨论】:

    标签: c# mediadevices


    【解决方案1】:

    使用FirstOrDefault 代替First

    var device = devicess.FirstOrDefault(d => d.FriendlyName == "MyCellPhone")
    

    如果找不到匹配项,这将返回 null,而不是抛出异常。

    【讨论】:

    • 这就像魔术一样,我真的不认为这是解决方案..非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    相关资源
    最近更新 更多