Пример #1
0
        public ZFolder FindFolder(string path)
        {
            WantDirectory();
            if (String.IsNullOrEmpty(path))
            {
                return(Directory);
            }
            string key = VirtualFileExtension.NormalizePath(path);

            if (m_dirIndex.ContainsKey(path))
            {
                return(m_dirIndex[path] as ZFolder);
            }
            return(null);
        }
Пример #2
0
 private void LoadDirectory()
 {
     m_dirIndex  = new Dictionary <string, ZDirItem>();
     m_directory = new ZFolder();
     foreach (var entry in Zip.Entries)
     {
         var npath = VirtualFileExtension.NormalizePath(entry.FileName);
         var items = npath.Split('/');
         var fld   = FindZFolder(items, m_directory, 0, entry.IsDirectory ? items.Length : items.Length - 1);
         if (!entry.IsDirectory)
         {
             var zfile = new ZFile {
                 Path = npath
             };
             fld.Files.Add(zfile);
             m_dirIndex[npath] = zfile;
         }
     }
 }
Пример #3
0
 private void DetectConflicts(ConfigNode parent)
 {
     foreach (var node in parent.Children)
     {
         if (node.VirtualPath is IVirtualFolder)
         {
             DetectConflicts(node);
         }
         else
         {
             if (m_dstFs.GetPath(node.VirtualPath).Exists())
             {
                 int idx = dataGridViewEx1.Rows.Add(VirtualFileExtension.NormalizePath(node.VirtualPath.FullPath), Path.GetFileNameWithoutExtension(node.VirtualPath.Name), node.Selected);
                 dataGridViewEx1.Rows[idx].Tag = node;
                 node.Tag              = dataGridViewEx1.Rows[idx];
                 node.SelectedChanged += new EventHandler(node_SelectedChanged);
                 m_conflicts.Add((ConfigFileNode)node);
             }
         }
     }
 }
Пример #4
0
 protected ZipVirtualPath(ZipFileSystem fs, string path)
 {
     m_fs        = fs;
     m_path      = path;
     m_normaPath = VirtualFileExtension.NormalizePath(m_path);
 }