コード例 #1
0
        public static void Main4(string[] args)
        {
            string label     = "Zap!";
            long   capacity  = 2L << 40;
            int    blockSize = 4 << 20;

            using (var diskStream = File.Create("big.vhdx"))
                using (var disk = Disk.InitializeDynamic(diskStream, Ownership.Dispose, capacity, blockSize))
                {
                    var gpt = GuidPartitionTable.Initialize(disk);
                    gpt.Create(gpt.FirstUsableSector, gpt.LastUsableSector, GuidPartitionTypes.WindowsBasicData, 0, null);
                    var  volume         = VolumeManager.GetPhysicalVolumes(disk).First();
                    uint bytesPerSector = (uint)(volume.PhysicalGeometry?.BytesPerSector ?? 512);
                    var  clusterCount   = 1 << 25;// uint.MaxValue - 16;
                    var  clusterSize    = capacity / clusterCount;
                    var  clusterBits    = (int)Math.Ceiling(Math.Log(clusterSize) / Math.Log(2));
                    if (clusterBits > 18)
                    {
                        clusterBits = 18;
                    }
                    //clusterBits = 20;
                    using (var fs = ExFatFileSystem.Format(volume, new ExFatFormatOptions {
                        SectorsPerCluster = (1u << clusterBits) / bytesPerSector
                    }, label: label))
                    { }
                }
        }
コード例 #2
0
ファイル: IntegrityTests.cs プロジェクト: jason6568/ExFat-2
 public void ValidVolume()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
     {
         Assert.IsTrue(ExFatFileSystem.Detect(testEnvironment.PartitionStream));
     }
 }
コード例 #3
0
 public void ReadAllFiles()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
     {
         using (var filesystem = new ExFatFileSystem(testEnvironment.PartitionStream))
         {
             var allFiles = filesystem.GetFiles("", "0*", SearchOption.AllDirectories);
             Assert.IsTrue(allFiles.All(p => Path.GetFileName(p).StartsWith("0")));
         }
     }
 }
コード例 #4
0
 public static void Main(string[] args)
 {
     using (var diskStream = File.OpenRead("D:\\rozina-pascal.localcopy.vhdx"))
     {
         var disk         = new Disk(diskStream, Ownership.Dispose);
         var volume       = VolumeManager.GetPhysicalVolumes(disk).First();
         var volumeStream = volume.Open();
         using (var fs = new ExFatFileSystem(volumeStream))
         {
             var f = fs.FileExists(@"rozina-pascal\storage\parameters");
             var d = fs.DirectoryExists(@"rozina-pascal\storage\parameters");
         }
     }
 }
コード例 #5
0
 public void MoveFile()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
     {
         using (var filesystem = new ExFatFileSystem(testEnvironment.PartitionStream))
         {
             using (var a = filesystem.OpenFile("a", FileMode.Create))
                 a.WriteByte(1);
             Assert.IsTrue(filesystem.FileExists("a"));
             filesystem.MoveFile("a", "b");
             Assert.IsFalse(filesystem.FileExists("a"));
             Assert.IsTrue(filesystem.FileExists("b"));
         }
     }
 }
コード例 #6
0
 public void ReadRootDirectories()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
     {
         using (var filesystem = new ExFatFileSystem(testEnvironment.PartitionStream))
         {
             var allDirectories = filesystem.GetDirectories("");
             Assert.IsFalse(allDirectories.Contains(DiskContent.LongContiguousFileName));
             Assert.IsFalse(allDirectories.Contains(DiskContent.LongSparseFile1Name));
             Assert.IsFalse(allDirectories.Contains(DiskContent.LongSparseFile2Name));
             Assert.IsTrue(allDirectories.Contains(DiskContent.EmptyRootFolderFileName));
             Assert.IsTrue(allDirectories.Contains(DiskContent.LongFolderFileName));
         }
     }
 }
コード例 #7
0
 public static void Main2(string[] args)
 {
     File.Copy("Empty1.vhdx", "Empty.vhdx", true);
     using (var disk = new Disk("Empty.vhdx"))
     {
         //var gpt = GuidPartitionTable.Initialize(disk);
         //gpt.Create(gpt.FirstUsableSector, gpt.LastUsableSector, GuidPartitionTypes.WindowsBasicData, 0, null);
         var volume = VolumeManager.GetPhysicalVolumes(disk)[1];
         using (var fs = ExFatFileSystem.Format(volume))
             fs.CreateDirectory("a folder");
     }
     using (var disk = new Disk("Empty.vhdx"))
     {
         var volume = VolumeManager.GetPhysicalVolumes(disk)[1];
         using (var fs2 = new ExFatFileSystem(volume.Open()))
         {
             var i = fs2.GetDirectoryInfo("a folder");
             var e = fs2.GetDirectories("");
         }
     }
 }