/// <summary> /// Gets the file or folder with the specified name from the current folder. /// </summary> /// <param name="name">The name (or path relative to the current folder) of the file or folder to get.</param> /// <returns></returns> public Task <IStorageItem> GetItemAsync(string name) { #if WINDOWS_UWP || WINDOWS_APP || WINDOWS_PHONE_APP || WINDOWS_PHONE return(Task.Run <IStorageItem>(async() => { var item = await _folder.GetItemAsync(name); if (item != null) { if (item.IsOfType(Windows.Storage.StorageItemTypes.File)) { var sfi = item as Windows.Storage.StorageFile; return (StorageFile)sfi; } else if (item.IsOfType(Windows.Storage.StorageItemTypes.Folder)) { var sfo = item as Windows.Storage.StorageFolder; return (StorageFolder)sfo; } } return null; })); #elif __ANDROID__ || __UNIFIED__ || WIN32 || TIZEN return(Task.Run <IStorageItem>(() => { foreach (string foldername in global::System.IO.Directory.GetDirectories(Path)) { if (foldername == name) { return new StorageFolder(global::System.IO.Path.Combine(Path, foldername)); } } foreach (string filename in global::System.IO.Directory.GetFiles(Path)) { if (filename == name) { return new StorageFile(global::System.IO.Path.Combine(Path, filename)); } } return null; })); #else throw new PlatformNotSupportedException(); #endif }