示例#1
0
        public void Open(object sender, string path)
        {
            if (IsCurrentDirectory(path))
                return;

            bool isDirectory = System.IO.Directory.Exists(path);
            bool isFile = System.IO.File.Exists(path);

            if (!isDirectory && !isFile)
                return;
            if (isDirectory)
            {
                ShowDirectory(sender, new BaseDirectoryInfo(path));
                return;
            }
            if (isFile)
            {
                string ext = System.IO.Path.GetExtension(path);
                if (Utility.IsSupported(ext))
                {
                    _viewForm.ShowImage(new BaseFileInfo(path));
                    if (sender == this)
                        ShowDirectory(this, new BaseDirectoryInfo(System.IO.Path.GetDirectoryName(path)));
                    return;
                }
                if (Utility.IsArchive(ext))
                {
                    BaseDirectoryInfo dirInfo =
                        new BaseDirectoryInfo(System.IO.Path.GetDirectoryName(path));
                    switch (ext)
                    {
                            //TODO Refactor combine with ShowArchive
                        case ".zip":
                            ZipDirectoryInfo zipDirInfo = new ZipDirectoryInfo(new BaseFileInfo(path));
                            ShowDirectory(sender, zipDirInfo);
                            return;
                        case ".rar":
                            RarDirectoryInfo rarDirInfo = new RarDirectoryInfo(new BaseFileInfo(path));
                            ShowDirectory(sender, rarDirInfo);
                            return;
                        case ".7z":
                            SevenZipDirectoryInfo sevenZipInfo = new SevenZipDirectoryInfo(new BaseFileInfo(path));
                            ShowDirectory(sender, sevenZipInfo);
                            break;
                        default:
                            break;
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Show images within archive file
 /// </summary>
 /// <param name="fileInfo"></param>
 public void ShowArchive(object sender, IFileInfo fileInfo)
 {
     if (IsCurrentDirectory(fileInfo.FullPath))
         return;
     if (!(fileInfo is BaseFileInfo))
         return;
     comboBox1.Text = fileInfo.FullPath;
     switch (fileInfo.Extension)
     {
         case ".zip":
             ZipDirectoryInfo zipDirInfo = new ZipDirectoryInfo((BaseFileInfo)fileInfo);
             ShowDirectory(sender, zipDirInfo);
             break;
         case ".rar":
             RarDirectoryInfo rarDirInfo = new RarDirectoryInfo((BaseFileInfo)fileInfo);
             ShowDirectory(sender, rarDirInfo);
             break;
         case ".7z":
             SevenZipDirectoryInfo sevenZipInfo = new SevenZipDirectoryInfo((BaseFileInfo)fileInfo);
             ShowDirectory(sender, sevenZipInfo);
             break;
         default:
             break;
     }
 }