Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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>();
        }
Esempio n. 3
0
 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);
 }