2017-10-17 34 views
0

当我尝试从名为“ad_runner”的文件夹访问文件时出现未处理的错误,它位于USB驾驶。我究竟做错了什么?UWP - Windows物联网 - 从位于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; 
     } 
    } 
+1

嗨,你可以把你的代码在一个try/catch块和catch正在提高的例外(如果有的话)?另外,您是否在应用清单中添加了usb声明? –

+0

是的,我添加了可移动存储声明。 – Sillygoose4u

+0

我不知道为什么它没有发生,我做了一个简单的尝试赶上。结果(e.message)显示“访问被拒绝”。 但是,我确实启用了清单功能。 https://image.ibb.co/hxkBY6/Capture.jpg – Sillygoose4u

回答

1

如果你试图调用await KnownFolders.RemovableDevices.GetFoldersAsync();你可以看到,这个第一个电话不回可移动设备,但可移动设备自理里面的文件夹。所以,我修改了一点你的代码首先检索所有连接的移动设备,并且在此之后,检查名为“ad_runner”文件夹里面:

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}" }); 
      }); 
     } 
} 
+0

它的工作原理!还有一件事,它显示了包含文件夹(ad_runner)中每个文件的完整路径(file.Path),这同样很棒,但是当我将该值以列表格式传递给图像URI时,它不显示图像。任何理由? 'try BitmapImage sf = new BitmapImage(new Uri(path_x [1])); imagex.Source = sf; dir_lbl.Text = path_x [1]; //这是我从文件传递的路径 } catch(Exception ex) { dir_lbl.Text = ex.Message; }' – Sillygoose4u

+1

要将文件加载到位图图像中,您必须从IRandomAccessStream传递,简单地说,您可以获取组成图像的byte [],并且可以将bitmapimage.source分配给它。你可以在这里找到一些帮助:[链接](http://windowsapptutorials.com/tips/storagefile/convert-storagefile-to-a-bitmapimage-in-universal-windows-apps/) –

+0

也许下次再打开另一个问题;) –

相关问题