Beispiel #1
0
        /// <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
        }