2013-10-11 22 views
0

我正在苦苦思索windows應用程序的文件api。我想在數據導出時創建子文件夾來寫入一些額外的文件。這意味着:在windows store應用程序中相對於所選文件創建一個文件夾

data.txt 
extra 
+ 1.txt 
+ 2.txt 

data.txt是由用戶挑選的,所以它沒有問題寫。但我怎麼能創建這個子文件夾?

storageFolder.getFolderAsync("C\some\path\where\data\is\extra").done(... 

不起作用。由於安全限制,它似乎失敗了。

我可以忍受重寫寫入文件。但是,當用戶在文檔文件夾中選擇data.txt時,它也不起作用。

回答

0

恐怕這是「As Designed」行爲。

Yoy可以在您的應用程序特定文件夾(AppData)中做任何想要的事 當用戶通過文件激活或filepicker授予您授權時,您可以在系統的任何位置讀取/編輯文件。有api延長授權的使用期限 如果您的應用程序需要在其清單中選中功能,則可以在已知文件夾內讀取/編輯文件。

由於安全限制,其他文件系統交互將失敗。

+0

授予我的應用程序在文件中寫入。我可以使用Windows.Storage.KnownFolders.documentsLibrary創建文件夾。但是如果我使用storageFolder.getFolderAsync(「C:\\ users .. \\ Documents」),則訪問被拒絕。 – user1705545

+0

您應該使用KnownFolders訪問文檔庫:http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.knownfolders.documentslibrary.aspx?cs-save-lang=1&cs-lang=此外,您可能希望在聲明 - >文件類型關聯 –

+0

中聲明要在包清單中操作的文件類型。另外,您必須先使用CreateFolderAsync在嘗試執行之前創建「額外」目錄該目錄上的getFolderAsync:http://msdn.microsoft.com/fr-fr/library/windows/apps/br227257.aspx –

0

如果決定讓用戶選擇一個目錄而不是文件。 FolderPicker將處理這項工作。這不是我的首選解決方案,因爲用戶無法選擇目標文件夾的名稱。 FolderPicker中的創建選項與Windows中的非RT類似,可以解決這個問題,但目前還沒有辦法。

所以我的用戶必須在文檔資源管理器中創建一個導出文件夾,然後在應用中選擇它。

我的結構是:

Documents 
+ export (created by user in explorer) 
++ 2012-10-04 (hard coded by app) 
+++ data.txt 
+++ extra 
++++ 1.txt 
++++ 2.txt 
相關問題