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(); }
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(); }
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); } }