/// <summary>
        /// Gets a file in this folder
        /// </summary>
        /// <param name="name">The name of the file to get</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task <IFile> TryGetFileAsync(string name, CancellationToken cancellationToken)
        {
            IFile file = null;

            if (!cancellationToken.IsCancellationRequested)
            {
                var storageFile = await TryGetItemAsync(name).ConfigureAwait(false) as IStorageFile;

                if (storageFile != null)
                {
                    file = new WinRTFile(storageFile);
                }
            }
            return(file);
        }
        public async Task SavePwDatabase()
        {
            var factory = new KdbWriterFactory(_encryptionEngine,
                      _keyTransformer,
                      _hasher,
                      _gzipStreamFactory);

            var writer = factory.CreateWriter(PwDatabase.Tree);  
            
#if NETFX_CORE
            IFile file = new WinRTFile(StorageFile);
#elif WP8
            IFile file = new WP8File(StorageFile);
#endif
            await writer.Write(PwDatabase, file);
        }