2016-03-08 62 views
0

這真是令人討厭的問題,它會讓我發瘋。我喜歡閱讀文件,目錄等信息。但我的應用程序找不到任何東西在其運行的文件夾外。無法讀取我的應用程序目錄之外的任何文件或目錄

我正在使用Visual Studio 2015並開發Windows通用應用程序。

這個例程工作得很好,如果我改變文件夾內的目錄我的應用運行像「資產」和任何其他文件夾。但是我的應用程序文件夾之外的結果是零,甚至沒有:-(任何錯誤

好吧,下面是簡單的代碼,我做了什麼?

private void GetThem_Click(object sender, RoutedEventArgs e) 
{ 
    string myDir = @"c:\mydir\"; 
    string[] files; 
    files = Directory.GetFiles(myDir,"*.jpg"); 

    foreach (string stuff in files) 
    { 
     RESULT.Text = RESULT.Text + stuff + " , "; 
    } 
} 
+0

運行VS 2015年管理員權限 –

回答

-1

快速搜索會給你answer :這是不可能的訪問文件系統像一個典型的桌面應用程序@Rico蘇特爾的答案解釋你什麼,你可以存取權限,以及如何:這是在清單文件中聲明

  • 目錄(例如,文檔,圖片,視頻DER)
  • 目錄和文件,用戶手動地與它們與一個文件擴展名關聯或經由共享

打開FileOpenPicker或FolderPicker

  • 文件從FutureAccessList或MostRecentlyUsedList
  • 文件中選擇一旦用戶選擇了一個文件,您可以將其添加到MostRecentlyUsedList或FutureAccessList中,以便稍後使用此片段(C#)從MSDN再次使用它:

    StorageFile file = await savePicker.PickSaveFileAsync(); 
    if (file != null) 
    { 
        // Add to MRU with metadata (For example, a string that represents the date) 
        string mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(file, "20120716"); 
    
        // Add to FA without metadata 
        string faToken = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(file); 
    } 
    

    然後存儲檢索令牌,因爲你會需要它來訪問使用文件GetFileAsync(令牌)

  • +0

    因此,舉例來說,如果我的文件在驅動器d:E:或任何東西就像我不能訪問沒有「Picker」的文件?這聽起來很瘋狂......(好吧,不知何故,這也是個好主意)任何想法(或網絡中的簡單快速的例子)如何使用FutureAccessList?聽起來這是存儲文件夾的唯一方法,用戶可以使用該文件夾.. – Weissu

    +0

    是的,這是沙盒應用程序的要點,您無法直接訪問文件。這確保用戶數據受到保護。查看我編輯的答案,瞭解FutureAccessList和MostRecentlyUsedList的用法。 – bviale

    +0

    太好了。我需要做一些小改動才能獲得文件夾,現在它似乎開始工作。感謝幫助! – Weissu

    相關問題