2012-09-03 10 views
9

que tiene acceso denegado al intentar CreateFileAsync en InstalledLocation StorageFolder¿Se deniega el acceso al intentar crear FileFileAsync en InstalledLocation StorageFolder?

StorageFolder storageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
StorageFile file = await storageFolder.CreateFileAsync("fileNmae", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

También probé

var storageFolder = await StorageFolder.GetFolderFromPathAsync("ms-appx:///"); 

y se puso "valor no se encuentra dentro del rango esperado"

puedo ir alrededor y CreateFileAsync en Windows.Storage.ApplicationData.Current.LocalFolder luego CopyAsync a InstalledLocation StorageFolder?

StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
StorageFile file = await storageFolder.CreateFileAsync("fileName", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

StorageFolder installedLocationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
var result = await file.CopyAsync(installedLocationFolder, "fileName", Windows.Storage.NameCollisionOption.ReplaceExisting); 

pero CreateFileAsync en InstalledLocation StorageFolder da niega el acceso? es por razones de seguridad o estoy codificando algo mal aquí?

Respuesta

14

El directorio de instalación de la aplicación es de solo lectura. Además, no se recomienda que escriba archivos de datos en la ubicación instalada. Si necesita almacenar datos que es únicamente con el uso de la aplicación, se debe utilizar

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 

o

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder; 

en función de la vida útil de los datos.

+0

Si no me equivoco, el directorio de instalación y sus subdirectorios son ubicaciones de solo lectura. – isa

Cuestiones relacionadas