Example #1
0
        private static async Task MoveUsingStreams(IDirectory destination, IDirectory source, CancellationToken token)
        {
            destination.Create();
            foreach (var subDir in source.AllSubDirectories())
            {
                await MoveUsingStreams(destination.SubDirectory(subDir.Name), subDir, token);
            }

            foreach (var file in source.AllFiles())
            {
                await MoveUsingStreams(destination.File(file.Name), file, token, source.Attributes);
            }
            source.Delete();
        }
Example #2
0
        public static async Task CopyFrom(this IDirectory destination, IDirectory source, CancellationToken?token = null)
        {
            CancellationToken token1 = token ?? CancellationToken.None;

            destination.Create();
            foreach (var subDir in source.AllSubDirectories())
            {
                await CopyFrom(destination.SubDirectory(subDir.Name), subDir, token1);
            }

            foreach (var file in source.AllFiles())
            {
                await CopyFrom(destination.File(file.Name), file, token1, source.Attributes);
            }
        }