Ejemplo n.º 1
0
        public bool Extract(NexonArchiveFileEntry entry)
        {
            path = entry.Path;
            while (path[Index] == Path.DirectorySeparatorChar || path[Index] == Path.AltDirectorySeparatorChar)
            {
                Index++;
            }

            path = path.Substring(Index);
            path = Path.Combine(ExtractPath, path);

            DirectoryInfo dir = new DirectoryInfo(Path.GetDirectoryName(path));

            if (!dir.Exists)
            {
                dir.Create();
            }

            using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
            {
                entry.Extract(fs);

                if (DecryptModels && String.Compare(Path.GetExtension(path), ".mdl", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    ModelHelper.DecryptModel(fs);
                }
            }
            return(true);
        }
Ejemplo n.º 2
0
            public bool Extract(NexonArchiveFileEntry file)
            {
                string path       = file.Path;
                int    slashIndex = 0;

                while (path[slashIndex] == Path.DirectorySeparatorChar || path[slashIndex] == Path.AltDirectorySeparatorChar)
                {
                    slashIndex++;
                }
                path = path.Substring(slashIndex);
                path = Path.Combine(this.ExtractPath, path);
                DirectoryInfo pathDirectory = new DirectoryInfo(Path.GetDirectoryName(path));

                if (!pathDirectory.Exists)
                {
                    pathDirectory.Create();
                }
                using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.Read))
                {
                    file.Extract(fileStream);
                    if (this.DecryptModels && string.Compare(Path.GetExtension(path), ".mdl", StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        ModelHelper.DecryptModel(fileStream);
                    }
                }
                return(true);
            }
Ejemplo n.º 3
0
        public ListViewItem AddFile(NexonArchiveFileEntry file)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }
            ListViewItem item = new ListViewItem(Path.GetFileName(file.Path));

            item.Tag = file;
            item.SubItems.Add(file.LastModifiedTime.ToString(DateTimeFormatInfo.CurrentInfo));
            item.SubItems.Add(FilesListView.GetHumanSize(file.Size));
            base.Items.Add(item);
            return(item);
        }
Ejemplo n.º 4
0
 private void verifyToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (base.SelectedIndices.Count > 0)
     {
         List <NexonArchiveFileEntry> files = new List <NexonArchiveFileEntry>();
         foreach (object obj in base.SelectedItems)
         {
             ListViewItem          item = (ListViewItem)obj;
             NexonArchiveFileEntry file = item.Tag as NexonArchiveFileEntry;
             if (file != null)
             {
                 files.Add(file);
             }
         }
         this.OnVerifyFiles(new FilesEventArgs(this.FullPath, files));
     }
 }
Ejemplo n.º 5
0
 private static bool VerifyFilesHelper(NexonArchiveFileEntry file)
 {
     return(file.Verify());
 }
Ejemplo n.º 6
0
            public int Compare(object x, object y)
            {
                ListViewItem xItem = x as ListViewItem;
                ListViewItem yItem = y as ListViewItem;

                if (xItem == null)
                {
                    if (yItem == null)
                    {
                        return(0);
                    }
                    return(-1);
                }
                else
                {
                    if (yItem == null)
                    {
                        return(1);
                    }
                    if (this.Column < 0 || this.Order == SortOrder.None)
                    {
                        return(0);
                    }
                    if (this.Order != SortOrder.Ascending && this.Order != SortOrder.Descending)
                    {
                        return(0);
                    }
                    NexonArchiveFileEntry xFile = xItem.Tag as NexonArchiveFileEntry;
                    NexonArchiveFileEntry yFile = yItem.Tag as NexonArchiveFileEntry;
                    if (this.Column >= xItem.SubItems.Count && this.Column >= yItem.SubItems.Count)
                    {
                        return(0);
                    }
                    int value;
                    switch (this.Column)
                    {
                    case 1:
                        if (xFile != null && yFile != null)
                        {
                            value = DateTime.Compare(xFile.LastModifiedTime, yFile.LastModifiedTime);
                            goto IL_10F;
                        }
                        break;

                    case 2:
                        if (xFile != null && yFile != null)
                        {
                            value = xFile.Size.CompareTo(yFile.Size);
                            goto IL_10F;
                        }
                        break;
                    }
                    value = string.Compare(xItem.SubItems[this.Column].Text, yItem.SubItems[this.Column].Text, StringComparison.CurrentCultureIgnoreCase);
IL_10F:
                    if (this.Order == SortOrder.Descending)
                    {
                        return(-value);
                    }
                    return(value);
                }
            }
Ejemplo n.º 7
0
 private static bool VerifyHelper(NexonArchiveFileEntry entry)
 {
     return(entry.Verify());
 }