2012-09-03 3 views
9

나는 또한 내가InstalledLocation StorageFolder에서 CreateFileAsync를 시도 할 때 액세스가 거부됩니까?

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

을 시도하고

내가

갈 수 "값이 예상 범위를 벗어"가지고
StorageFolder storageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
StorageFile file = await storageFolder.CreateFileAsync("fileNmae", Windows.Storage.CreationCollisionOption.ReplaceExisting); 

StorageFolder

InstalledLocation에 CreateFileAsync하려고 할 때 액세스가 거부있어 주변 및 CreateFileAsync in Windows.Storage.ApplicationData.Current.LocalFolder 다음 CopyAsync to InstalledLocation StorageFolder? 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); 

하지만 CreateFileAsync는 액세스가 거부 주는가? 보안상의 이유로 여기에 뭔가 잘못 코딩 되었습니까?

답변

14

앱의 설치 디렉토리는 읽기 전용 위치입니다. 또한 설치된 위치에 데이터 파일을 쓰지 않는 것이 좋습니다. 이는 응용 프로그램의 사용을위한 데이터를 저장해야하는 경우에는 데이터의 수명에 따라

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

StorageFolder localFolder = ApplicationData.Current.LocalFolder; 

또는

을 사용해야합니다.

+0

잘못된 것이 아니라면 설치 디렉토리와 하위 디렉토리는 읽기 전용 위치입니다. – isa

관련 문제