public void LoadFileSystem() { using (var data = Helpers.Helpers.LoadDataFile("data.ext4.dat")) using (var fs = new ExtFileSystem(data, new FileSystemParameters())) { Assert.Collection(fs.Root.GetFileSystemInfos() .OrderBy(s => s.Name), s => { Assert.Equal("bar", s.Name); Assert.True((s.Attributes & FileAttributes.Directory) != 0); }, s => { Assert.Equal("foo", s.Name); Assert.True((s.Attributes & FileAttributes.Directory) != 0); }, s => { Assert.Equal("lost+found", s.Name); Assert.True((s.Attributes & FileAttributes.Directory) != 0); }); Assert.Empty(fs.Root.GetDirectories("foo").First().GetFileSystemInfos()); Assert.Collection(fs.Root.GetDirectories("bar").First().GetFileSystemInfos() .OrderBy(s => s.Name), s => { Assert.Equal("blah.txt", s.Name); Assert.True((s.Attributes & FileAttributes.Directory) == 0); }, s => { Assert.Equal("testdir1", s.Name); Assert.True((s.Attributes & FileAttributes.Directory) != 0); }); var tmpData = fs.OpenFile("bar\\blah.txt", FileMode.Open).ReadAll(); Assert.Equal(Encoding.ASCII.GetBytes("hello world\n"), tmpData); tmpData = fs.OpenFile("bar\\testdir1\\test.txt", FileMode.Open).ReadAll(); Assert.Equal(Encoding.ASCII.GetBytes("Mon Feb 11 19:54:14 UTC 2019\n"), tmpData); } }
static void CreateFile(ExtFileSystem fs) { //Open a file for write var file = fs.OpenFile("/etc/test", FileMode.Create, FileAccess.Write); var hello = "Hello World"; var buf = Encoding.ASCII.GetBytes(hello); //Write to file file.Write(buf, 0, buf.Length); file.Close(); }
static void ReadFileContent(ExtFileSystem fs) { //Open a file for read var file = fs.OpenFile("/etc/shells", FileMode.Open, FileAccess.Read); //Check the file length var filelen = file.Length; var buf = new byte[filelen]; //Read the file content var count = file.Read(buf, 0, (int)filelen); file.Close(); var content = Encoding.Default.GetString(buf); Console.WriteLine(content); }