public IContentReader GetContentReader(IContext context) { Stream stream; if (context.TransactionAvailable()) { stream = TransactedFile.Open(_fileSystemInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.None); } else { stream = File.Open(_fileSystemInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.Read); } return new TxFContentReader(stream); }
public override IEnumerable<INodeFactory> GetNodeChildren(IContext context) { var dirInfo = _node.Item as DirectoryInfo; if (null == dirInfo) { return null; } var entries = dirInfo.GetFilesTransacted().ToList(); entries.Take(2).ToList().ForEach(e => { if (e.ToString().EndsWith("\\.") || e.ToString().EndsWith("\\..")) { entries.Remove(e); } }); entries.ToList().ForEach(e => { if ((!context.TransactionAvailable() || -1 != (int)e.Attributes) && !context.Force && 0 != (e.Attributes & (FileAttributes.System | FileAttributes.Hidden))) { entries.Remove(e); } }); return entries.ConvertAll(fsi => new TxFNodeFactory(fsi)).Cast<INodeFactory>(); }
IContentWriter GetContentWriter(IContext context, string fullPath) { Stream stream; if (context.TransactionAvailable()) { stream = TransactedFile.Open(fullPath, FileMode.Open, FileAccess.Write, FileShare.None); } else { stream = File.Open(fullPath, FileMode.Open, FileAccess.Write, FileShare.None); } return new TxFContentWriter(stream); }