public void Length(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.GetFileInfo("foo.txt").Open(FileMode.Create, FileAccess.ReadWrite)) { s.SetLength(3128); } Assert.AreEqual(3128, fs.GetFileInfo("foo.txt").Length); using (Stream s = fs.OpenFile("foo.txt", FileMode.Open, FileAccess.ReadWrite)) { s.SetLength(3); Assert.AreEqual(3, s.Length); } Assert.AreEqual(3, fs.GetFileInfo("foo.txt").Length); using (Stream s = fs.OpenFile("foo.txt", FileMode.Open, FileAccess.ReadWrite)) { s.SetLength(3333); byte[] buffer = new byte[512]; for (int i = 0; i < buffer.Length; ++i) { buffer[i] = (byte)i; } s.Write(buffer, 0, buffer.Length); s.Write(buffer, 0, buffer.Length); Assert.AreEqual(1024, s.Position); Assert.AreEqual(3333, s.Length); s.SetLength(512); Assert.AreEqual(512, s.Length); } using (Stream s = fs.OpenFile("foo.txt", FileMode.Open, FileAccess.ReadWrite)) { byte[] buffer = new byte[512]; int numRead = s.Read(buffer, 0, buffer.Length); int totalRead = 0; while (numRead != 0) { totalRead += numRead; numRead = s.Read(buffer, totalRead, buffer.Length - totalRead); } for (int i = 0; i < buffer.Length; ++i) { Assert.AreEqual((byte)i, buffer[i]); } } }
public void LastAccessTime(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.OpenFile("foo.txt", FileMode.Create)) { } DiscFileInfo fi = fs.GetFileInfo("foo.txt"); DateTime baseTime = DateTime.Now - TimeSpan.FromDays(2); fi.LastAccessTime = baseTime; using (Stream s = fs.OpenFile("foo.txt", FileMode.Open, FileAccess.Read)) { } Assert.Less(baseTime, fi.LastAccessTime); }
public void LastWriteTime(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.OpenFile("foo.txt", FileMode.Create)) { } DiscFileInfo fi = fs.GetFileInfo("foo.txt"); DateTime baseTime = DateTime.Now - TimeSpan.FromMinutes(10); fi.LastWriteTime = baseTime; using (Stream s = fs.OpenFile("foo.txt", FileMode.Open)) { s.WriteByte(1); } Assert.Less(baseTime, fi.LastWriteTime); }
public void GetFileSystemInfos(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); fs.CreateDirectory(@"SOMEDIR\CHILD\GCHILD"); fs.CreateDirectory(@"AAA.EXT"); using (Stream s = fs.OpenFile(@"FOO.TXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\CHILD.EXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\FOO.TXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\CHILD\GCHILD\BAR.TXT", FileMode.Create)) { } Assert.AreEqual(3, fs.Root.GetFileSystemInfos().Length); Assert.AreEqual(1, fs.Root.GetFileSystemInfos("*.EXT").Length); Assert.AreEqual(2, fs.Root.GetFileSystemInfos("*.?XT").Length); }
public void Delete(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.OpenFile("foo.txt", FileMode.Create)) { } fs.GetFileInfo("foo.txt").Delete(); Assert.IsFalse(fs.FileExists("foo.txt")); }
public void CreationTime(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.OpenFile("foo.txt", FileMode.Create)) { } Assert.GreaterOrEqual(DateTime.Now, fs.GetFileInfo("foo.txt").CreationTime); Assert.LessOrEqual(DateTime.Now.Subtract(TimeSpan.FromSeconds(10)), fs.GetFileInfo("foo.txt").CreationTime); }
public void GetFiles(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); fs.CreateDirectory(@"SOMEDIR\CHILD\GCHILD"); fs.CreateDirectory(@"AAA.DIR"); using (Stream s = fs.OpenFile(@"FOO.TXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\CHILD.TXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\FOO.TXT", FileMode.Create)) { } using (Stream s = fs.OpenFile(@"SOMEDIR\CHILD\GCHILD\BAR.TXT", FileMode.Create)) { } Assert.AreEqual(1, fs.Root.GetFiles().Length); Assert.AreEqual("FOO.TXT", fs.Root.GetFiles()[0].FullName); Assert.AreEqual(2, fs.Root.GetDirectories("SOMEDIR")[0].GetFiles("*.TXT").Length); Assert.AreEqual(4, fs.Root.GetFiles("*.TXT", SearchOption.AllDirectories).Length); Assert.AreEqual(0, fs.Root.GetFiles("*.DIR", SearchOption.AllDirectories).Length); }
public void Parent(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); fs.CreateDirectory(@"SOMEDIR\ADIR"); using (Stream s = fs.OpenFile(@"SOMEDIR\ADIR\FILE.TXT", FileMode.Create)) { } DiscFileInfo fi = fs.GetFileInfo(@"SOMEDIR\ADIR\FILE.TXT"); Assert.AreEqual(fs.GetDirectoryInfo(@"SOMEDIR\ADIR"), fi.Parent); Assert.AreEqual(fs.GetDirectoryInfo(@"SOMEDIR\ADIR"), fi.Directory); }
public void CreateFile(NewFileSystemDelegate fsFactory) { DiscFileSystem fs = fsFactory(); using (Stream s = fs.GetFileInfo("foo.txt").Open(FileMode.Create, FileAccess.ReadWrite)) { s.WriteByte(1); } DiscFileInfo fi = fs.GetFileInfo("foo.txt"); Assert.IsTrue(fi.Exists); Assert.AreEqual(FileAttributes.Archive, fi.Attributes); Assert.AreEqual(1, fi.Length); using (Stream s = fs.OpenFile("Foo.txt", FileMode.Open, FileAccess.Read)) { Assert.AreEqual(1, s.ReadByte()); } }
public override Stream Open(string fileName, FileMode mode, FileAccess access, FileShare share) { return(_fileSystem.OpenFile(Path.Combine(_basePath, fileName), mode, access)); }
protected override Stream OpenFile(string fileName, FileMode mode, FileAccess access, FileShare share) { return(_fileSystem.OpenFile(Utilities.CombinePaths(_basePath, fileName), mode, access)); }