No se puede crear una carpeta / archivo en el sistema de archivos de Android con PCLStorage o Xamarin Forms Labs

Estoy desarrollando una aplicación para Android usando la plataforma Xamarin y estoy intentando crear una carpeta en mi almacenamiento local pero no he tenido éxito.

Primero intenté usar el espacio de nombres System.IO a través de una clase FileManager creada por Xamarin Forms Labs. Un fragmento de las funciones que estaba pasando la ruta de "/ storage / emulated / 0 /` ".

public void CreateDirectory(string path) { this.isolatedStorageFile.CreateDirectory(path); } public Stream OpenFile(string path, FileMode mode, FileAccess access) { return (Stream)this.isolatedStorageFile.OpenFile(path, (System.IO.FileMode)mode, (System.IO.FileAccess)access); } 

Esto no funcionó así que opté por usar PCLStorage una biblioteca para operaciones de archivo de plataforma cruzada. He probado este código.

 IFolder rootFolder = FileSystem.Current.LocalStorage; folder = await rootFolder.CreateFolderAsync("wakesocial", CreationCollisionOption.OpenIfExists); 

No funcionó. Navegué hasta la raíz del almacenamiento interno y no vi la carpeta.

Por lo tanto, el error no parece estar ocurriendo debido a las bibliotecas en uso, sino algo específico de Android. He leído y escrito en el almacenamiento externo en manifiesto. Así que la pregunta es. ¿Tiene una aplicación el permiso para crear un archivo o una carpeta en el nivel raíz del dispositivo de almacenamiento o tiene que crearlo en una ubicación determinada, como en Android / data / packagename

 string folderPath = Environment.ExternalStorageDirectory.AbsolutePath; //Android public async Task PCLGenaratePdf(string folderPath ) { IFolder rootFolder = await FileSystem.Current.GetFolderFromPathAsync(folderPath ); IFolder folder = await rootFolder.CreateFolderAsync("folder", CreationCollisionOption.OpenIfExists); IFile file = await folder.CreateFileAsync("file.pdf", CreationCollisionOption.ReplaceExisting); } 

En Android, la carpeta LocalStorage de PCL Storage corresponde a la carpeta especial "Mis documentos" .

No estoy seguro de qué ruta está tratando de crear una carpeta, pero si conoce la ruta y desea utilizar PCL Storage, debería poder utilizar FileSystem.Current.GetFolderFromPathAsync para obtener un PCL Storage IFolder correspondiente a Una carpeta existente.

  • Xamarin Android Google Maps App mapa está en blanco y sin error
  • El atributo no se declara (Android) en los atributos xml básicos
  • Error de compilación de Xamarin (monodroid) + adMob
  • No se puede obtener SyncAdapter para trabajar en Xamarin
  • Android, Xamarin Formularios PCL, PortableRest PCL y Async Web Api Call
  • Problemas al implementar la versión de la aplicación Xamarin.Android
  • Android Analyze APK
  • Xamarin Android deserializa el archivo json local
  • Tejido TwitterKit en Xamarin
  • ¿Cómo dormir hilo en Xamarin android y ios?
  • ¿Cómo despertar un teléfono de forma remota?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.