什麼是檢查windows phone 8.1上的Gallery中是否有新媒體文件的最佳方法?WIndows Phone 8.1檢查新媒體文件
我看到在WP81中沒有像iOS7或Android這樣的內容觀察器API。
我目前正在計算每個文件的校驗和及其名稱和大小,並使用windows.storage列表進行本地存儲,每次檢查新項目時,我會爲每個文件再次創建校驗和,並將其與已保存的校驗和列表。
當文件數量多時,這會帶來巨大的開銷。
有沒有更好的方法來做到這一點?
什麼是檢查windows phone 8.1上的Gallery中是否有新媒體文件的最佳方法?WIndows Phone 8.1檢查新媒體文件
我看到在WP81中沒有像iOS7或Android這樣的內容觀察器API。
我目前正在計算每個文件的校驗和及其名稱和大小,並使用windows.storage列表進行本地存儲,每次檢查新項目時,我會爲每個文件再次創建校驗和,並將其與已保存的校驗和列表。
當文件數量多時,這會帶來巨大的開銷。
有沒有更好的方法來做到這一點?
目前還沒有API來做到這一點,所以在這種情況下,恐怕你不得不在媒體文件(例如MusicLibrary)中列出你的文件,然後決定爲未來的比較保存什麼。文件大小的總和可能是一個好主意,因此兩個不同音樂文件的大小可能會相同。如果用戶將文件從一個文件夾移動到另一個文件夾(總大小不會更改),也取決於是否要通知您。如果你想確保你越能記住的Tuple<file.FolderRelativeId, fileSize>
整個列表作爲FileQueries尚未公佈Windows Phone的,你將不得不遞歸retrive文件簡單的代碼可以是這樣的:
// first - a method to retrieve files from folder recursively
private async Task RetriveFilesInFolder(List<StorageFile> list, StorageFolder parent)
{
foreach (var item in await parent.GetFilesAsync()) list.Add(item);
foreach (var item in await parent.GetFoldersAsync()) await RetriveFilesInFolder(list, item);
}
private async Task<List<StorageFile>> GetFilesInMusic()
{
StorageFolder folder = KnownFolders.MusicLibrary;
List<StorageFile> listOfFiles = new List<StorageFile>();
await RetriveFilesInFolder(listOfFiles, folder);
return listOfFiles;
}
一旦你有您的文件列表,您可以決定在下次應用程序啓動時要記住哪些內容以供進一步比較。
可能沒有簡單的解決方案。 [類似問題在這裏](http://stackoverflow.com/q/23724001/2681948)。 – Romasz 2014-09-11 08:22:59