private bool isRepaired; // = false

        public PseudoTransactedStore(IDirectory innerFileSystem) : base(innerFileSystem)
        {
            if (innerFileSystem.IsVolitleDirectory())
            {
                throw new InvalidDataException("It makes no sense to enable transactions on a volitile store.");
            }
            isRepaired = !innerFileSystem.AllFiles("*.txn").Any();
        }
示例#2
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();
        }
示例#3
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);
            }
        }