コード例 #1
0
ファイル: Form1.cs プロジェクト: macomfan/TorrentClean
        private void btnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "torrent file (*.torrent)|*.torrent|All files (*.*)|*.*";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    coder_ = new Bencoder();
                    coder_.OpenFile(dialog.FileName);
                    TreeNode root = treeView1.Nodes.Add("Root");
                    AddRootToTree(root, coder_.root_);
                    root.Expand();
                    currentPath_ = Path.GetDirectoryName(dialog.FileName);
                    currentFileName_ = Path.GetFileName(dialog.FileName);
                    btnSaveAs.Enabled = true;
                    btnClear.Enabled = true;
                    fileDict_ = coder_.root_.FindFileDict();

                    for (int i = 0; i < fileList_.Count; i++)
                    {
                        string extName = fileList_[i].extName_;
                        if (extName == ".mp4" ||
                            extName == ".avi" ||
                            extName == ".mkv" ||
                            extName == ".mpg" ||
                            extName == ".rmvb" ||
                            extName == ".rm" ||
                            extName == ".wmv" ||
                            extName == ".zip" ||
                            extName == ".rar" ||
                            extName == ".iso")
                        {
                        }
                        else
                        {
                            checkedListBox1.SetItemChecked(i, true);
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show("Open Error: " + ex.Message);
                }

            }
        }
コード例 #2
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Decode(Bencoder file)
 {
     if (len_ != 0)
     {
         byte[] buf = file.ReadBytes(len_);
         value_ = System.Text.Encoding.UTF8.GetString(buf);
         org_ = buf;
     }
 }
コード例 #3
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Encode(Bencoder file)
 {
     if (len_ == 0)
     {
         file.WriteInt(0);
         file.WriteChar(':');
     }
     else
     {
         file.WriteInt(len_);
         file.WriteChar(':');
         file.WriteBytes(org_, org_.Length);
     }
 }
コード例 #4
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Decode(Bencoder file)
 {
     IBenNode node = BenDecoder.NextNote(file);
     while (node != null)
     {
         nodes_.Add(node);
         node = BenDecoder.NextNote(file);
     }
 }
コード例 #5
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Encode(Bencoder file)
 {
     foreach (IBenNode node in nodes_)
     {
         node.Encode(file);
     }
 }
コード例 #6
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Decode(Bencoder file)
 {
     IBenNode item = BenDecoder.NextNote(file);
     while (item != null)
     {
         list_.Add(item);
         item = BenDecoder.NextNote(file);
     }
 }
コード例 #7
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Encode(Bencoder file)
 {
     file.WriteChar('l');
     foreach (IBenNode node in list_)
     {
         node.Encode(file);
     }
     file.WriteChar('e');
 }
コード例 #8
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Encode(Bencoder file)
 {
     file.WriteChar('i');
     file.WriteInt(value_);
     file.WriteChar('e');
 }
コード例 #9
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Decode(Bencoder file)
 {
     string value = string.Empty;
     char c = file.ReadChar();
     while (c != 'e')
     {
         value += c;
         c = file.ReadChar();
     }
     value_ = Convert.ToInt64(value);
 }
コード例 #10
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public void Encode(Bencoder file)
 {
     file.WriteChar('d');
     foreach (KeyValuePair<BenString, IBenNode> pair in dict_)
     {
         pair.Key.Encode(file);
         pair.Value.Encode(file);
     }
     file.WriteChar('e');
 }
コード例 #11
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
        public void Decode(Bencoder file)
        {
            IBenNode key = BenDecoder.NextNote(file);
            while (key != null)
            {
                IBenNode value = BenDecoder.NextNote(file);
                if ((key as BenString).value_ == "path")
                {
                    (value as BenList).isPathList_ = true;
                }
                if ((key as BenString).value_ == "files")
                {
                    (value as BenList).isFileList_ = true;
                }
                dict_.Add(key as BenString, value);

                key = BenDecoder.NextNote(file);
            }
        }
コード例 #12
0
ファイル: Bencoder.cs プロジェクト: macomfan/TorrentClean
 public static IBenNode NextNote(Bencoder file)
 {
     IBenNode node = null;
     char key = file.ReadChar();
     switch (key)
     {
         case '0':
         case '1':
         case '2':
         case '3':
         case '4':
         case '5':
         case '6':
         case '7':
         case '8':
         case '9':
             string stringLen = string.Empty;
             char c = key;
             while (c != ':')
             {
                 stringLen += c.ToString();
                 c = file.ReadChar();
             }
             BenString benString = new BenString(System.Int32.Parse(stringLen));
             benString.Decode(file);
             node = benString;
             break;
         case 'i':
             BenInt i = new BenInt();
             i.Decode(file);
             node = i;
             break;
         case 'd':
             BenDictionary dict = new BenDictionary();
             dict.Decode(file);
             node = dict;
             break;
         case 'l':
             BenList list = new BenList();
             list.Decode(file);
             node = list;
             break;
     }
     return node;
 }