示例#1
0
        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);
                }
        }
示例#2
0
        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();
        }
示例#3
0
        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);
        }