public void GetDirectories(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            fs.CreateDirectory(@"SOMEDIR\CHILD\GCHILD");
            fs.CreateDirectory(@"A.DIR");

            Assert.Equal(2, fs.Root.GetDirectories().Length);

            DiscDirectoryInfo someDir = fs.Root.GetDirectories(@"SoMeDir")[0];

            Assert.Equal(1, fs.Root.GetDirectories("SOMEDIR").Length);
            Assert.Equal("SOMEDIR", someDir.Name);

            Assert.Equal(1, someDir.GetDirectories("*.*").Length);
            Assert.Equal("CHILD", someDir.GetDirectories("*.*")[0].Name);
            Assert.Equal(2, someDir.GetDirectories("*.*", SearchOption.AllDirectories).Length);

            Assert.Equal(4, fs.Root.GetDirectories("*.*", SearchOption.AllDirectories).Length);
            Assert.Equal(2, fs.Root.GetDirectories("*.*", SearchOption.TopDirectoryOnly).Length);

            Assert.Equal(1, fs.Root.GetDirectories("*.DIR", SearchOption.AllDirectories).Length);
            Assert.Equal(@"A.DIR\", fs.Root.GetDirectories("*.DIR", SearchOption.AllDirectories)[0].FullName);

            Assert.Equal(1, fs.Root.GetDirectories("GCHILD", SearchOption.AllDirectories).Length);
            Assert.Equal(@"SOMEDIR\CHILD\GCHILD\", fs.Root.GetDirectories("GCHILD", SearchOption.AllDirectories)[0].FullName);
        }
Exemplo n.º 2
0
 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)
             {
                 metroProgressBar1.Increment(1);
                 metroLabel2.Text = metroProgressBar1.Value.ToString() + " %";
                 metroLabel2.Refresh();
                 metroTextBox1.Text = finfo.Name.ToString();
                 metroTextBox1.Refresh();
                 FileStr.CopyTo(Fs, 8 * 1024); // Buffer Size is 4 * 1024 but you can modify it in your code as per your need
             }
         }
     }
 }
Exemplo n.º 3
0
 public 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())
         {
             char[] charsToRemove = { ';', '1' };
             string fileName      = finfo.Name.TrimEnd(charsToRemove);
             using (FileStream Fs = File.Create(RootPath + "\\" + fileName))
             {
                 FileStr.CopyTo(Fs, 4 * 1024);
                 Console.WriteLine(fileName + " was extracted.");
             }
         }
     }
 }
 /**************************************************************************************************************
  * Extract ISO 9660
  *************************************************************************************************************/
 private void ExtractDirectoryISO9660(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO)
 {
     try
     {
         if (!string.IsNullOrWhiteSpace(PathinISO))
         {
             PathinISO += "\\" + Dinfo.Name;
         }
         RootPath += "\\" + Dinfo.Name;
         AppendDirectoryISO9660(RootPath);
         foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
         {
             ExtractDirectoryISO9660(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
                 }
             }
         }
     }
     catch (Exception oEx)
     {
         BootmanLog.LogError(LogTextBox, "Error Extracting ISO: " + oEx.Message);
     }
 }
Exemplo n.º 5
0
        public void DirectoryInfo()
        {
            FatFileSystem     fs = FatFileSystem.FormatFloppy(new MemoryStream(), FloppyDiskType.HighDensity, "FLOPPY_IMG ");
            DiscDirectoryInfo fi = fs.GetDirectoryInfo(@"SOMEDIR");

            Assert.IsNotNull(fi);
        }
Exemplo n.º 6
0
        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);
            }
            var test = Dinfo.GetFiles();

            foreach (DiscFileInfo finfo in test)
            {
                using (Stream FileStr = finfo.OpenRead())
                {
                    using (FileStream Fs = File.Create(RootPath + "\\" + finfo.Name))
                    {
                        Progress_Bar.Increment(1 / test.Length);
                        Progress_Number.Text = Progress_Bar.Value.ToString() + " %";
                        Progress_Number.Refresh();
                        FileStr.CopyTo(Fs, 8 * 1024);
                    }
                }
            }
        }
        public void GetDirectories()
        {
            CDBuilder builder = new CDBuilder();

            builder.AddDirectory(@"SOMEDIR\CHILD\GCHILD");
            builder.AddDirectory(@"A.DIR");
            CDReader fs = new CDReader(builder.Build(), false);


            Assert.AreEqual(2, fs.Root.GetDirectories().Length);

            DiscDirectoryInfo someDir = fs.Root.GetDirectories(@"SoMeDir")[0];

            Assert.AreEqual(1, fs.Root.GetDirectories("SOMEDIR").Length);
            Assert.AreEqual("SOMEDIR", someDir.Name);

            Assert.AreEqual(1, someDir.GetDirectories("*.*").Length);
            Assert.AreEqual("CHILD", someDir.GetDirectories("*.*")[0].Name);
            Assert.AreEqual(2, someDir.GetDirectories("*.*", SearchOption.AllDirectories).Length);

            Assert.AreEqual(4, fs.Root.GetDirectories("*.*", SearchOption.AllDirectories).Length);
            Assert.AreEqual(2, fs.Root.GetDirectories("*.*", SearchOption.TopDirectoryOnly).Length);

            Assert.AreEqual(1, fs.Root.GetDirectories("*.DIR", SearchOption.AllDirectories).Length);
            Assert.AreEqual(@"A.DIR\", fs.Root.GetDirectories("*.DIR", SearchOption.AllDirectories)[0].FullName);

            Assert.AreEqual(1, fs.Root.GetDirectories("GCHILD", SearchOption.AllDirectories).Length);
            Assert.AreEqual(@"SOMEDIR\CHILD\GCHILD\", fs.Root.GetDirectories("GCHILD", SearchOption.AllDirectories)[0].FullName);
        }
Exemplo n.º 8
0
        protected override void RenameItem(string path, string newName)
        {
            object obj = FindItemByPath(Utilities.NormalizePath(path), true, false);

            DiscFileSystemInfo fsiObj = obj as DiscFileSystemInfo;

            if (fsiObj == null)
            {
                WriteError(new ErrorRecord(
                               new InvalidOperationException("Cannot move items to this location"),
                               "BadParentForNewItem",
                               ErrorCategory.InvalidArgument,
                               newName));
                return;
            }

            string newFullName = Path.Combine(Path.GetDirectoryName(fsiObj.FullName.TrimEnd('\\')), newName);

            if (obj is DiscDirectoryInfo)
            {
                DiscDirectoryInfo dirObj = (DiscDirectoryInfo)obj;
                dirObj.MoveTo(newFullName);
            }
            else
            {
                DiscFileInfo fileObj = (DiscFileInfo)obj;
                fileObj.MoveTo(newFullName);
            }
        }
Exemplo n.º 9
0
        public static Stream CreatePsPath(SessionState session, string filePath)
        {
            string parentPath  = session.Path.ParseParent(filePath, null);
            string childName   = session.Path.ParseChildName(filePath);
            var    parentItems = session.InvokeProvider.Item.Get(parentPath);

            if (parentItems.Count > 1)
            {
                throw new IOException(string.Format(CultureInfo.InvariantCulture, "PowerShell path {0} is ambiguous", parentPath));
            }
            else if (parentItems.Count < 1)
            {
                throw new DirectoryNotFoundException("No such directory");
            }

            DirectoryInfo parentAsDir = parentItems[0].BaseObject as DirectoryInfo;

            if (parentAsDir != null)
            {
                return(File.Create(Path.Combine(parentAsDir.FullName, childName)));
            }

            DiscDirectoryInfo parentAsDiscDir = parentItems[0].BaseObject as DiscDirectoryInfo;

            if (parentAsDiscDir != null)
            {
                return(parentAsDiscDir.FileSystem.OpenFile(Path.Combine(parentAsDiscDir.FullName, childName), FileMode.Create, FileAccess.ReadWrite));
            }

            throw new FileNotFoundException("Path is not a directory", parentPath);
        }
Exemplo n.º 10
0
        private void ParseCd(DiscDirectoryInfo pathDir = null)
        {
            if (pathDir == null)
            {
                pathDir = GetDirectoryInfo("\\");
                Range <long, long> r = PathToClusters("\\").First();
                directoryMembers.Add(new DirectoryMemberInformation(pathDir.FullName, r.Offset, r.Count.RoundToSector(),
                                                                    0, false)
                {
                    Added = true
                });
            }

            foreach (DiscDirectoryInfo dir in pathDir.GetDirectories())
            {
                DirectoryRecord rec    = dir.Entry.Record;
                long            offset = rec.LocationOfExtent;
                long            count  = rec.DataLength;
                directoryMembers.Add(new DirectoryMemberInformation(dir.FullName, offset, count.RoundToSector(), 0, false));
                ParseCd(dir);
            }
            foreach (DiscFileInfo f in pathDir.GetFiles())
            {
                ReaderDirectory rdr = f.Entry.Parent;

                // Fetch all cluster information from the parent
                IEnumerable <ReaderDirEntry> entries = rdr.GetEntriesByName(f.Entry.FileName);

                long offset = f.Entry.Record.LocationOfExtent;
                long count  = entries.Sum(e => e.Record.DataLength);

                directoryMembers.Add(new DirectoryMemberInformation(f.FullName, offset, count.RoundToSector(), count, true));
            }
        }
Exemplo n.º 11
0
        private void CreateNewDisk()
        {
            string[] typeAndVariant = Type.Split('-');
            if (typeAndVariant.Length < 1 || typeAndVariant.Length > 2)
            {
                WriteError(new ErrorRecord(
                               new ArgumentException("Invalid Type of disk"),
                               "BadDiskType",
                               ErrorCategory.InvalidArgument,
                               null));
                return;
            }

            long size;

            if (!DiscUtils.Common.Utilities.TryParseDiskSize(Size, out size))
            {
                WriteError(new ErrorRecord(
                               new ArgumentException("Unable to parse the disk size"),
                               "BadDiskSize",
                               ErrorCategory.InvalidArgument,
                               null));
                return;
            }


            string type    = typeAndVariant[0];
            string variant = typeAndVariant.Length > 1 ? typeAndVariant[1] : null;

            string   child;
            PSObject parentObj = ResolveNewDiskPath(out child);

            VirtualDisk disk = null;

            if (parentObj.BaseObject is DirectoryInfo)
            {
                string path = Path.Combine(((DirectoryInfo)parentObj.BaseObject).FullName, child);
                using (VirtualDisk realDisk = VirtualDisk.CreateDisk(type, variant, path, size, null, null)) { }
                disk = new OnDemandVirtualDisk(path, FileAccess.ReadWrite);
            }
            else if (parentObj.BaseObject is DiscDirectoryInfo)
            {
                DiscDirectoryInfo ddi  = (DiscDirectoryInfo)parentObj.BaseObject;
                string            path = Path.Combine(ddi.FullName, child);
                using (VirtualDisk realDisk = VirtualDisk.CreateDisk(ddi.FileSystem, type, variant, path, size, null, null)) { }
                disk = new OnDemandVirtualDisk(ddi.FileSystem, path, FileAccess.ReadWrite);
            }
            else
            {
                WriteError(new ErrorRecord(
                               new DirectoryNotFoundException("Cannot create a virtual disk in that location"),
                               "BadDiskLocation",
                               ErrorCategory.InvalidArgument,
                               null));
                return;
            }

            WriteObject(disk, false);
        }
Exemplo n.º 12
0
        public void DirectoryInfo()
        {
            CDBuilder         builder = new CDBuilder();
            CDReader          fs      = new CDReader(builder.Build(), false);
            DiscDirectoryInfo fi      = fs.GetDirectoryInfo(@"SOMEDIR");

            Assert.NotNull(fi);
        }
        public void CreateInvalid_Characters(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscDirectoryInfo dirInfo = fs.GetDirectoryInfo("SOME\0DIR");

            Assert.Throws <IOException>(() => dirInfo.Create());
        }
        public void CreateInvalid_Long(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscDirectoryInfo dirInfo = fs.GetDirectoryInfo(new String('X', 256));

            Assert.Throws <IOException>(() => dirInfo.Create());
        }
Exemplo n.º 15
0
            internal Iso9960Directory(DiscDirectoryInfo directory, VfsDevice device, VfsEntry parent = null)
                : base(directory.Name, device, parent)
            {
                _directory = directory;

                Attributes   = directory.Attributes;
                DateAccessed = directory.LastAccessTimeUtc;
                DateCreated  = directory.CreationTimeUtc;
                DateModified = directory.LastWriteTimeUtc;
            }
        public void Create(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscDirectoryInfo dirInfo = fs.GetDirectoryInfo("SOMEDIR");

            dirInfo.Create();

            Assert.Equal(1, fs.Root.GetDirectories().Length);
        }
Exemplo n.º 17
0
        public FatFileSystemDirectory(FatFileSystemProvider fs, string path, OpenDirectoryMode mode)
        {
            ParentFileSystem = fs;
            FullPath         = path;
            Mode             = mode;

            path = FatFileSystemProvider.ToDiscUtilsPath(PathTools.Normalize(path));

            DirInfo = fs.Fs.GetDirectoryInfo(path);
        }
Exemplo n.º 18
0
 void BrowseDirectory(DiscDirectoryInfo Dinfo, string RootPath, string PathinISO, DiscDirectoryInfo ComparingNode)
 {
     if (Dinfo.FullName == ComparingNode.FullName)
     {
         metroListView1.Items.Clear();
         foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
         {
             ListViewItem.ListViewSubItem[] subItems = null;
             ListViewItem item = null;
             item = new ListViewItem(dinfo.Name, 0);
             subItems = new ListViewItem.ListViewSubItem[]
                       {new ListViewItem.ListViewSubItem(item, "Directory"),
            new ListViewItem.ListViewSubItem(item,
         dinfo.LastAccessTime.ToShortDateString())};
             item.SubItems.AddRange(subItems);
             metroListView1.Items.Add(item);
             currentFolder = Dinfo;
             textBox1.Text = Dinfo.FullName;
             //DiscDirectoryInfo nodeDirInfo;
             //for (int i = 0; i<treeView1.Nodes.Count; i++)
             //{
             //    nodeDirInfo = (DiscDirectoryInfo)treeView1.Nodes[i].Tag;
             //    if (nodeDirInfo.FullName == Dinfo.FullName)
             //        treeView1.Nodes[i].Expand();
             //    else treeView1.Nodes[0].NextVisibleNode.Expand();
             //}
                
         }
         foreach (DiscFileInfo finfo in Dinfo.GetFiles())
         {
             ListViewItem.ListViewSubItem[] subItems = null;
             ListViewItem item = null;
             item = new ListViewItem(finfo.Name, 1);
             subItems = new ListViewItem.ListViewSubItem[]
                       { new ListViewItem.ListViewSubItem(item, "File"),
            new ListViewItem.ListViewSubItem(item,
         finfo.LastAccessTime.ToShortDateString())};
             item.SubItems.AddRange(subItems);
             metroListView1.Items.Add(item);
         }
     } else
     {
         foreach (DiscDirectoryInfo dinfo in Dinfo.GetDirectories())
         {
             if (dinfo.FullName == ComparingNode.FullName)
             {
                 metroListView1.Items.Clear();
                 BrwsDirectory(dinfo, RootPath, PathinISO, ComparingNode);
             }
             BrowseDirectory(dinfo, RootPath, PathinISO, ComparingNode);
         }
     }
     
 }
        public void SimpleSearch()
        {
            CDBuilder builder = new CDBuilder();

            builder.AddFile(@"SOMEDIR\CHILDDIR\GCHILDIR\FILE.TXT", new byte[0]);
            CDReader fs = new CDReader(builder.Build(), false);

            DiscDirectoryInfo di = fs.GetDirectoryInfo(@"SOMEDIR\CHILDDIR");

            DiscFileInfo[] fis = di.GetFiles("*.*", SearchOption.AllDirectories);
        }
        public void CreateRecursive(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscDirectoryInfo dirInfo = fs.GetDirectoryInfo(@"SOMEDIR\CHILDDIR");

            dirInfo.Create();

            Assert.Equal(1, fs.Root.GetDirectories().Length);
            Assert.Equal(1, fs.GetDirectoryInfo(@"SOMEDIR").GetDirectories().Length);
            Assert.Equal("CHILDDIR", fs.GetDirectoryInfo(@"SOMEDIR").GetDirectories()[0].Name);
        }
Exemplo n.º 21
0
 private static void ShowDir(DiscDirectoryInfo dirInfo, int indent)
 {
     Console.WriteLine("{0}{1,-50} [{2}]", new String(' ', indent), dirInfo.FullName, dirInfo.CreationTimeUtc);
     foreach (DiscDirectoryInfo subDir in dirInfo.GetDirectories())
     {
         ShowDir(subDir, indent + 0);
     }
     foreach (DiscFileInfo file in dirInfo.GetFiles())
     {
         Console.WriteLine("{0}{1,-50} [{2}]", new String(' ', indent), file.FullName, file.CreationTimeUtc);
     }
 }
Exemplo n.º 22
0
        /// <summary>
        /// The recursive files.
        /// </summary>
        /// <param name="path">
        /// The path.
        /// </param>
        /// <returns>
        /// </returns>
        private static List <DiscUtilFile> RecursiveFiles(DiscDirectoryInfo path)
        {
            var returnFiles = new List <DiscUtilFile>();

            foreach (DiscFileInfo file in path.GetFiles())
            {
                var newFile = new DiscUtilFile();
                newFile.FileName = file.FullName;
                newFile.FileSize = file.Length;
                returnFiles.Add(newFile);
            }

            return(returnFiles);
        }
Exemplo n.º 23
0
        private void GetChildren(string path, bool recurse, bool namesOnly)
        {
            if (string.IsNullOrEmpty(path))
            {
                return;
            }

            object obj = FindItemByPath(path, false, true);

            if (obj is VirtualDisk)
            {
                VirtualDisk vd = (VirtualDisk)obj;
                EnumerateDisk(vd, path, recurse, namesOnly);
            }
            else if (obj is LogicalVolumeInfo)
            {
                LogicalVolumeInfo lvi = (LogicalVolumeInfo)obj;

                bool           dispose;
                DiscFileSystem fs = GetFileSystem(lvi, out dispose);
                try
                {
                    if (fs != null)
                    {
                        EnumerateDirectory(fs.Root, path, recurse, namesOnly);
                    }
                }
                finally
                {
                    if (dispose && fs != null)
                    {
                        fs.Dispose();
                    }
                }
            }
            else if (obj is DiscDirectoryInfo)
            {
                DiscDirectoryInfo ddi = (DiscDirectoryInfo)obj;
                EnumerateDirectory(ddi, path, recurse, namesOnly);
            }
            else
            {
                WriteError(new ErrorRecord(
                               new InvalidOperationException("Unrecognized object type: " + (obj != null ? obj.GetType() : null)),
                               "UnknownObjectType",
                               ErrorCategory.ParserError,
                               obj));
            }
        }
        public void Exists(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            DiscDirectoryInfo dirInfo = fs.GetDirectoryInfo(@"SOMEDIR\CHILDDIR");

            dirInfo.Create();

            Assert.True(fs.GetDirectoryInfo(@"\").Exists);
            Assert.True(fs.GetDirectoryInfo(@"SOMEDIR").Exists);
            Assert.True(fs.GetDirectoryInfo(@"SOMEDIR\CHILDDIR").Exists);
            Assert.True(fs.GetDirectoryInfo(@"SOMEDIR\CHILDDIR\").Exists);
            Assert.False(fs.GetDirectoryInfo(@"NONDIR").Exists);
            Assert.False(fs.GetDirectoryInfo(@"SOMEDIR\NONDIR").Exists);
        }
        public void LastWriteTime(NewFileSystemDelegate fsFactory)
        {
            DiscFileSystem fs = fsFactory();

            fs.CreateDirectory("DIR");
            DiscDirectoryInfo di = fs.GetDirectoryInfo("DIR");

            DateTime baseTime = DateTime.Now - TimeSpan.FromMinutes(10);

            di.LastWriteTime = baseTime;

            fs.CreateDirectory(@"DIR\CHILD");

            Assert.True(baseTime < di.LastWriteTime);
        }
Exemplo n.º 26
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);
     }
 }
Exemplo n.º 27
0
        private string[] GetFiles(DiscDirectoryInfo directory)
        {
            List <string> result = new List <string>();

            foreach (DiscFileInfo file in directory.GetFiles())
            {
                result.Add(file.FullName);
            }

            foreach (DiscDirectoryInfo dir in directory.GetDirectories())
            {
                result.AddRange(GetFiles(dir));
            }

            return(result.ToArray());
        }
Exemplo n.º 28
0
 private void metroTile1_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         PopulateTreeView(openFileDialog1.SafeFileName, openFileDialog1.FileName.Replace(openFileDialog1.SafeFileName, ""));
         using (FileStream ISOStream = File.Open(openFileDialog1.FileName, FileMode.Open))
         {
             CDReader Reader = new CDReader(ISOStream, true, true);
             metroListView1.Items.Clear();
             BrowseDirectory(Reader.Root, ExtPath + Path.GetFileNameWithoutExtension(ISONameFile) + "\\", "", Reader.Root);
             metroListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
             DiscDirectoryInfo nodeDirInfo = (DiscDirectoryInfo)treeView1.Nodes[0].Tag;
             textBox1.Text = nodeDirInfo.FullName;
         }
     }
 }
Exemplo n.º 29
0
        void treeView1_NodeMouseClick(object sender,
    TreeNodeMouseClickEventArgs e)
        {
			using (FileStream ISOStream = File.Open(openFileDialog1.FileName, FileMode.Open))
			{
				CDReader Reader = new CDReader(ISOStream, true, true);
                metroListView1.Items.Clear();        
				TreeNode newSelected = e.Node;
				DiscDirectoryInfo nodeDirInfo = (DiscDirectoryInfo)newSelected.Tag;
                BrowseDirectory(Reader.Root, ExtPath + Path.GetFileNameWithoutExtension(ISONameFile) + "\\", "", nodeDirInfo);
                textBox1.Text = nodeDirInfo.FullName;
                currentFolder = nodeDirInfo;
                Reader.Dispose();
			}
			metroListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
Exemplo n.º 30
0
        private void GoBackDirectory(DiscDirectoryInfo Dinfo, string path, DiscDirectoryInfo ComparingNode)
        {
            if (Dinfo.FullName == textBox1.Text)
            {
                BrwsDirectory(Dinfo.Parent, ExtPath + Path.GetFileNameWithoutExtension(ISONameFile) + "\\", "", Dinfo.Parent);
                textBox1.Text = Dinfo.Parent.FullName;
            }
            else
            {
                foreach (DiscDirectoryInfo disc in Dinfo.GetDirectories())
                {
                    GoBackDirectory(disc, path, ComparingNode);
                }
            }

        }
Exemplo n.º 31
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);
     }
 }
Exemplo n.º 32
0
        private void DoCopy(DiscDirectoryInfo srcDir, string srcFileName, DiscDirectoryInfo destDir, string destFileName, bool recurse)
        {
            string srcPath = Path.Combine(srcDir.FullName, srcFileName);
            string destPath = Path.Combine(destDir.FullName, destFileName);

            if ((srcDir.FileSystem.GetAttributes(srcPath) & FileAttributes.Directory) == 0)
            {
                DoCopyFile(srcDir.FileSystem, srcPath, destDir.FileSystem, destPath);
            }
            else
            {
                DoCopyDirectory(srcDir.FileSystem, srcPath, destDir.FileSystem, destPath);
                if (recurse)
                {
                    DoRecursiveCopy(srcDir.FileSystem, srcPath, destDir.FileSystem, destPath);
                }
            }
        }