void ExtractDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
 {
     if (!string.IsNullOrWhiteSpace(PathinISO))
     {
         PathinISO += "\\" + Dinfo.Name;
     }
     RootPath += "\\" + Dinfo.Name;
     AppendDirectory(RootPath);
     foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
     {
         ExtractDirectory(dinfo, RootPath, PathinISO);
     }
     foreach (DiscFileInfo finfo in Dinfo.GetFiles())
     {
         using (Stream FileStr = finfo.OpenRead())
         {
             using (FileStream Fs = File.Create(RootPath + "\\" + finfo.Name)) // Here you can Set the BufferSize Also e.g. File.Create(RootPath + "\\" + finfo.Name, 4 * 1024)
             {
                 FileStr.CopyTo(Fs, 4 * 1024);                                 // Buffer Size is 4 * 1024 but you can modify it in your code as per your need
             }
         }
     }
 }
Example #2
0
 private void EnumerateDirectory(DiscDirectoryInfo parent, string basePath, bool recurse, bool namesOnly)
 {
     foreach (var dir in parent.GetDirectories())
     {
         WriteItemObject(namesOnly ? dir.Name : (object)dir, MakePath(basePath, dir.Name), true);
         if (recurse)
         {
             EnumerateDirectory(dir, MakePath(basePath, dir.Name), recurse, namesOnly);
         }
     }
     foreach (var file in parent.GetFiles())
     {
         WriteItemObject(namesOnly ? file.Name : (object)file, MakePath(basePath, file.Name), false);
     }
 }
Example #3
0
 public DiscDirectoryInfoTreeItemViewModel(DiscDirectoryInfo model)
 {
     Model       = model;
     directories = model.GetDirectories().Select(di => new DiscDirectoryInfoTreeItemViewModel(di)).ToList();
 }