CopyAsync

/// <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);
            }
        }
Example:
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);
        }

Description

Method for copying a folder to a new location

Details

Double click on the code to select all.

 

;