2013-04-27 99 views
3

我想開發一個基於Windows Phone的應用程序,在該應用程序中,我需要將文件夾的數量(該文件夾已經是項目的一部分)放到列表中,以便在運行時可以訪問這些文件。如果任何人都可以告訴我如何做到這一點,那麼這將非常有幫助。如何計算項目解決方案文件夾內的文件?

在正常的WPF應用程序,我們可以編寫代碼就像

DirectoryInfo di = new DirectoryInfo("D:\\Tempo"); 
FileInfo[] fi = di.GetFiles("*", SearchOption.AllDirectories); 
MessageBox.Show(fi.Length.ToString()); 

但是Windows手機內部的解決方案我該怎麼做呢?

我可以通過這個代碼

if (Application.GetResourceStream(new Uri("/WindowsPhone;component/Folder/file09.jpg", UriKind.Relative)) != null) 
{ 
    MessageBox.Show("Hi"); 
} 

得到一個單一的文件訪問,但該文件夾裏邊有很多文件,我想將它們放到列表,以便在運行時我可以訪問這些圖像。但用戶不會知道這些,所以它應該是C#代碼,而不是XAML代碼。任何幫助都會很棒。

+0

悲傷地在Windows手機應用程序,'Directory.GetFiles(@「c:\ images」,「。 jpg「)'不起作用,任何人都可以使用windows phone的解決方案8 – Debhere 2013-04-28 14:37:03

回答

1

這很簡單。

確保您將特定的文件夾添加到解決方案。隨同您想要在該文件夾中的任何文件。

確保每個文件的屬性設置,如下所示:

生成操作:內容
複製到輸出目錄:不要複製


確保應用程序就裝打電話之前

可以說我有一個名爲「Testfiles」的文件夾,我想從它讀取然後:

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    ReadAllFilesFromFolder("Testfiles"); 
} 

// TODO: recursion to get subfolders and files (maybe?) 
public async void ReadAllFilesFromFolder(string folder_name) 
{ 
    var package = Windows.ApplicationModel.Package.Current.InstalledLocation; 
    var assetsFolder = await package.GetFolderAsync(folder_name); 
    foreach (var file in await assetsFolder.GetFilesAsync()) 
    { 
     // TODO: whatever you want to do with file 
     // string filename = file.Name; 
    } 
} 
+0

感謝您的回覆。雖然已經很晚了,但我有不同的方式來滿足我的需求,但是我肯定會試試這個。 – Debhere 2014-09-07 07:41:01

相關問題