По соображениям безопасности, Universal приложений Windows может иметь доступ только к определенным типам файлов на внешних дисках,
И вы должны явно объявите его в файле Package.appxmanifest.
- Music Library
- Picture Library
- Видеотека
Вы также можете проверить возможность съемных носителей, а также.
Я не думаю, что у вас есть доступ к общему файловому формату, кроме указанных выше трех типов, иначе вы получите исключение «Отказано в доступе».
Подробнее ... here.
После того, как вы объявили свои возможности, вы можете получить корневую папку для внешнего устройства хранения данных с помощью следующего кода,
var removableDevices = KnownFolders.RemovableDevices;
var externalDrives = await removableDevices.GetFoldersAsync();
var drive0 = externalDrives[0];
Затем вы можете использовать методы потока для записи в файл, после кода образцы в here.
Если вы хотите записать данные в общий формат файла, обходным путем является использование доступного формата файла (например, jpg) и запись на него необработанных данных. Ниже приведен пример кода, который проверяется на Raspberry Pi 2 Model B, с Windows IoT 14393, с внешним USB-накопителем, подключенным к USB-порту.
private async void WriteData()
{
var removableDevices = KnownFolders.RemovableDevices;
var externalDrives = await removableDevices.GetFoldersAsync();
var drive0 = externalDrives[0];
var testFolder = await drive0.CreateFolderAsync("Test");
var testFile = await testFolder.CreateFileAsync("Test.jpg");
var byteArray = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 };
using (var sourceStream = new MemoryStream(byteArray).AsRandomAccessStream())
{
using (var destinationStream = (await testFile.OpenAsync(FileAccessMode.ReadWrite)).GetOutputStreamAt(0))
{
await RandomAccessStream.CopyAndCloseAsync(sourceStream, destinationStream);
}
}
}
Некоторых примеры код был бы полезен для устранения неисправностей. – Jackie