/// <summary>
        /// Method for copying a folder to a new location
        /// </summary>
        /// <param name="folder">source</param>
        /// <param name="target">target location</param>
        /// <param name="option">What to do then there is a collision</param>
        /// <returns></returns>
        public static async Task CopyAsync(this StorageFolder folder, StorageFolder target, CreationCollisionOption option)
            var targetfolder = await target.CreateFolderAsync(folder.Name, option).AsTask().ConfigureAwait(false);
            var subfolders = await folder.GetFoldersAsync().AsTask().ConfigureAwait(false);
            foreach(var subfolder in subfolders)
                await subfolder.CopyAsync(targetfolder, option).ConfigureAwait(false);
            var files = await folder.GetFilesAsync().AsTask().ConfigureAwait(false);
            foreach(var file in files)
                await file.CopyAsync(targetfolder).AsTask().ConfigureAwait(false);
public async void CopyDemo()
            var newfolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("new folder");
            var newfile = await newfolder.CreateFileAsync("testfile");
            var targetfolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("target");

            await newfolder.CopyAsync(targetfolder, CreationCollisionOption.ReplaceExisting);


Method for copying a folder to a new location


Double click on the code to select all.