C# UWP-Windows IOT-从名为“UWP”的特定文件夹获取文件;广告“跑步者”;位于USB驱动器中

C# UWP-Windows IOT-从名为“UWP”的特定文件夹获取文件;广告“跑步者”;位于USB驱动器中,c#,windows,uwp,windowsiot,windows-iot-core-10,C#,Windows,Uwp,Windowsiot,Windows Iot Core 10,当我试图从位于USB驱动器的名为“ad_runner”的文件夹访问文件时,出现未处理的错误。我做错了什么 async void AccessTheWebAsync() { StorageFolder remd = await KnownFolders.RemovableDevices.GetFolderAsync("ad_runner"); IReadOnlyList<StorageFile> fileList = await

当我试图从位于USB驱动器的名为“ad_runner”的文件夹访问文件时,出现未处理的错误。我做错了什么

        async void AccessTheWebAsync()
    {
        StorageFolder remd = await KnownFolders.RemovableDevices.GetFolderAsync("ad_runner");
        IReadOnlyList<StorageFile> fileList = await remd.GetFilesAsync();
        foreach (StorageFile file in fileList)
        {
            dir_lbl.Text = dir_lbl.Text + "\r\n" + file.Name;
        }
    }
async void访问webasync()
{
StorageFolder remd=等待KnownFolders.RemovableDevices.GetFolderAsync(“ad_runner”);
IReadOnlyList fileList=await remd.getfileasync();
foreach(文件列表中的存储文件)
{
dir\u lbl.Text=dir\u lbl.Text+“\r\n”+file.Name;
}
}

如果尝试调用
等待KnownFolders.RemovableDevices.GetFoldersAsync()您可以看到,第一次调用不会返回可移动设备中的文件夹,而是返回可移动设备本身。因此,我对您的代码进行了一些修改,首先检索所有连接的可移动设备,然后检查名为“ad_runner”的内部文件夹:

async void访问webasync()
{
//也许您想在try catch中执行此操作,并在继续之前验证至少连接了一个设备。。。。
var folderList=await KnownFolders.RemovableDevices.GetFoldersAsync();
foreach(wait KnownFolders.RemovableDevices.GetFoldersAsync()中的var设备)
{
尝试
{
StorageFolder remd=等待设备.GetFolderAsync(“ad_runner”);
IReadOnlyList fileList=await remd.getfileasync();
foreach(文件列表中的存储文件)
{
//你的逻辑在这里。。。。
dir\u lbl.Text=dir\u lbl.Text+“\r\n”+file.Name;
}
}
捕获(例外)
{
}
wait Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,()=>
{
rightGridWrapper.Children.Add(新文本块{Text=$“DeviceName:{device.Name}”);
});
}
}

Hi,您能将代码放入try/catch块并捕获引发的异常(如果有)吗?另外,您是否在应用程序清单中添加了usb声明?是的,我添加了可移动存储声明。我不知道为什么我没有想到做一个简单的尝试捕获。结果(e.message)显示“访问被拒绝”。但是,我确实启用了清单功能。它起作用了!还有一件事,它显示了包含的文件夹(ad_runner)中每个文件的完整路径(file.path),这同样很好,但当我以列表格式将该值传递给图像URI时,它不会显示图像。有什么原因吗<代码>尝试{BitmapImage sf=new-BitmapImage(新Uri(path_x[1]);imagex.Source=sf;dir_lbl.Text=path_x[1];//这是我从file.path}catch(Exception ex){dir_lbl.Text=ex.Message;}传递的内容
要将文件加载到位图图像中,您必须从irandomaccesstream传递,简单地说,您将获得构成图像的字节[],然后可以为其分配bitmapimage.source。你可以在这里找到一些帮助:也许下次再问这个问题;)
async void AccessTheWebAsync()
    {
        //Maybe you want to do this inside a try catch and verify that at least 1 device is connected before you go on....
        var folderList = await KnownFolders.RemovableDevices.GetFoldersAsync();

        foreach (var device in await KnownFolders.RemovableDevices.GetFoldersAsync())
        {
            try
            {
                StorageFolder remd = await device.GetFolderAsync("ad_runner");
                IReadOnlyList<StorageFile> fileList = await remd.GetFilesAsync();
                foreach (StorageFile file in fileList)
                {
                    //Your logic here....
                   dir_lbl.Text = dir_lbl.Text + "\r\n" + file.Name;
                }
            }
            catch (Exception)
            {

            }
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                rightGridWrapper.Children.Add(new TextBlock { Text = $"DeviceName: {device.Name}" });
            });
        }
}