当前位置: 首页 > 编程语言 > C#

在Windows Universal中将文件写入外部闪存驱动器分享

时间:2023-04-11 01:04:50 C#

C#学习教程:在WindowsUniversal中将文件写入外部闪存驱动器我想将数据写入连接到其中一个USB端口的外部闪存驱动器。我在PI中找到了如何写入SD卡的例子,但是在最终产品中无法访问SD卡。我可以获得闪存驱动器的根文件夹名称,但是当我尝试向其中写入文件时,我收到一条访问被拒绝的消息。如果我切换到SD卡,一切正常。有人可以指出一个允许访问外部闪存驱动器的示例吗?出于安全原因,通用Windows应用程序只能访问外部驱动器上某些类型的文件,您必须在Package.appxmanifest文件中明确声明这一点。您可能还想检查可移动存储功能。我不认为你可以访问除上述三种类型之外的常规文件格式,否则你会得到一个“拒绝访问”的异常。在此处查找更多详细信息。声明你的函数后,你可以使用下面的代码获取外部存储设备的根文件夹,varremovableDevices=KnownFolders.RemovableDevices;varexternalDrives=awaitremovableDevices.GetFoldersAsync();vardrive0=外部驱动[0];然后,您可以使用Stream方法写入文件,请按照此处的代码示例进行操作。如果要将数据写入通用文件格式,解决方案是使用可访问的文件格式,如jpg,并将原始数据写入其中。下面是在RaspberryPi2ModelB上验证的一些代码示例,使用WindowsIoT14393,外部USB驱动器连接到USB端口。privateasyncvoidWriteData(){varremovableDevices=KnownFolders.RemovableDevices;varexternalDrives=awaitremovableDevices.GetFoldersAsync();vardrive0=外部驱动[0];vartestFolder=awaitdrive0.CreateFolderFolderAsync("测试文件");.CreateFileAsync("测试.jpg");varbyteArray=newbyte[]{0x01,0x02,0x03,0x04,0x05,0x06,0x07};使用(varsourceStream=newMemoryStream(byteArray).AsRandomAccessStream()){使用(vardestinationStream=(awaittestFile.OpenAsync(FileAccessMode.ReadWrite)).GetOutputStreamAt(0)){awaitRandomAccessStream.CopyAndCloseAsync(sourceStream,destinationStream);}}}在Package.appxmanifest文件中设置函数以上为C#学习教程:WritefilestoexternalflashdriveinWindowsUniversal分享所有内容。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——>privateasyncvoidbtnCopyImages_Click(objectsender,RoutedEventArgse){//获取所有外部存储的逻辑根文件夹设备。存储文件夹外部设备es=Windows.Storage.KnownFolders.RemovableDevices;//获取第一个子文件夹,代表SD卡。StorageFoldersdCard=(awaitexternalDevices.GetFoldersAsync()).FirstOrDefault();//存在SD卡并且sdCard变量现在包含一个引用它。if(sdCard!=null){StorageFileresultfile=awaitsdCard.CreateFileAsync("foo.png",CreationCollisionOption.GenerateUniqueName);stringbase64="/9j/4AAQSkZJRgABAQEAYABgAAD/4RjqR.....;varbytes=Convert.FromBase64String(base64);awaitFileIO.WriteBytesAsync(resultfile,bytes);}//没有SD卡。else{}}This文章收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如有转载请注明出处: