公司禁用用迅雷,禁用所有P2P协议的软件,自己写个断点续传的工具

简介: 目前仅支持HTTP协议 下一步的工作是支持FTP协议 再下一步的工作是对原始URL进行智能分析 发此文以抗议像吉日兄这样的总监或者老板   Code    public partial class Form1 : Form    {        public Form1()      ...

目前仅支持HTTP协议

下一步的工作是支持FTP协议

再下一步的工作是对原始URL进行智能分析

发此文以抗议像吉日兄这样的总监或者老板

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
    public partial class Form1 : Form
    {
        
public Form1()
        {
            InitializeComponent();            
        }
        
private void DownLoad()
        {
            XmlDocument xmlDoc 
= new XmlDocument();
            xmlDoc.Load(
"D:\\中转\\data.xml");
            XmlNodeList nodeList 
= xmlDoc.SelectSingleNode("data").ChildNodes;
            XmlElement xe 
= (XmlElement)nodeList.Item(nodeList.Count - 1);
            
if (xe.GetAttribute("is_finish").Equals("true"))
            {
                MessageBox.Show(
"none task in the list");
                
return;
            }
            
string StrFileName = "D:\\中转\\" + xe.GetAttribute("name"); 
            
string StrUrl = xe.GetAttribute("address");

            
long lStartPos = 0;
            System.IO.FileStream fs;
            
if (System.IO.File.Exists(StrFileName))
            {
                fs 
= System.IO.File.OpenWrite(StrFileName);
                lStartPos 
= fs.Length;
                fs.Seek(lStartPos, System.IO.SeekOrigin.Current); 
//移动文件流中的当前指针
            }
            
else
            {
                fs 
= new System.IO.FileStream(StrFileName, System.IO.FileMode.Create);
                lStartPos 
= 0;
            }
            
//打开网络连接
            try
            {
                System.Net.HttpWebRequest request 
= (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl);
                
if (lStartPos > 0)
                    request.AddRange((
int)lStartPos); //设置Range值
                
//向服务器请求,获得服务器回应数据流
                System.IO.Stream ns = request.GetResponse().GetResponseStream();
                
byte[] nbytes = new byte[512];
                
int nReadSize = 0;
                nReadSize 
= ns.Read(nbytes, 0512);                
                
while (nReadSize > 0)
                {
                    fs.Write(nbytes, 
0, nReadSize);
                    nReadSize 
= ns.Read(nbytes, 0512);
                }
                fs.Close();
                ns.Close();
                EditNode();
                MessageBox.Show(
"Down Ok!");
            }
            
catch (Exception ex)
            {
                fs.Close();
                MessageBox.Show(
"Down Error!");
            }
        }
        
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            XmlDocument xmlDoc 
= new XmlDocument();
            xmlDoc.Load(
"D:\\中转\\data.xml");
            XmlNodeList nodeList 
= xmlDoc.SelectSingleNode("data").ChildNodes;
            XmlElement xe 
= (XmlElement)nodeList.Item(nodeList.Count - 1);
            
string StrFileName = "D:\\中转\\" + xe.GetAttribute("name");
            FileInfo fi 
= new FileInfo(StrFileName);
            DialogResult dr 
= MessageBox.Show(thisstring.Format("already:{0}kb\nOK:exit\ncancel:continue", fi.Length / 1024), "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2);
            
if (!dr.Equals(DialogResult.Cancel))
            {
                
this.Close();
                
this.Dispose();
            }
        }

        
private void button1_Click(object sender, EventArgs e)
        {
            
this.Hide();
            
if (!string.IsNullOrEmpty(textBox1.Text.Trim())&&!string.IsNullOrEmpty(textBox2.Text.Trim()))
            {
                InsertNode();
            }
            System.Threading.Thread obj 
= new System.Threading.Thread(new System.Threading.ThreadStart(this.DownLoad));
            
//设置为前台线程,即使主方法执行结束了我的线程仍在执行
            obj.IsBackground = true;
            obj.Start();
        }
        
private void EditNode()
        {
            XmlDocument xmlDoc 
= new XmlDocument();
            xmlDoc.Load(
"D:\\中转\\data.xml");
            XmlNodeList nodeList 
= xmlDoc.SelectSingleNode("data").ChildNodes;
            XmlElement xe 
= (XmlElement)nodeList.Item(nodeList.Count - 1);
            xe.SetAttribute(
"is_finish""true");
            xmlDoc.Save(
"D:\\中转\\data.xml");//保存。
        }
        
private void InsertNode()
        {
            XmlDocument xmlDoc 
= new XmlDocument();
            xmlDoc.Load(
"D:\\中转\\data.xml");
            XmlNode root 
= xmlDoc.SelectSingleNode("data");
            XmlElement xe1 
= xmlDoc.CreateElement("file");
            xe1.SetAttribute(
"name", textBox1.Text.Trim());
            xe1.SetAttribute(
"address", textBox2.Text.Trim());
            xe1.SetAttribute(
"is_finish""false");
            root.AppendChild(xe1);
            xmlDoc.Save(
"D:\\中转\\data.xml");
        }
目录
相关文章
|
2天前
|
存储 安全 数据安全/隐私保护
Obsidian笔记软件无公网远程同步数据到群辉Webdav
Obsidian笔记软件无公网远程同步数据到群辉Webdav
10 1
|
11月前
electron升级到20版本后,禁用第三方cookie、跨域问题解决方法
electron升级到20版本后,禁用第三方cookie、跨域问题解决方法
206 0
|
安全 数据安全/隐私保护 iOS开发
需要远程协助?可以先试试 macOS 自带的远程屏幕共享 | 一日一技
需要远程协助?可以先试试 macOS 自带的远程屏幕共享 | 一日一技
327 0
解决Office 365套件一直提示“缓存凭据已到期,无法上载或下载你的更改”问题
解决Office 365套件一直提示“缓存凭据已到期,无法上载或下载你的更改”问题
解决Office 365套件一直提示“缓存凭据已到期,无法上载或下载你的更改”问题
|
开发者
UOS开启开发者模式
UOS开启开发者模式
337 0
|
数据安全/隐私保护 Windows
Windows操作系统:测试模式禁用数字签名
程序必须在特殊的启动环境下才能正常使用,尤其是一些非官方或者需要数字签名的驱动程序,而Windows测试模式可以帮助我们解决类似的问题,开启后会帮助我们禁用驱动程序强制签名
291 0
Windows操作系统:测试模式禁用数字签名
|
缓存 安全 iOS开发
CleanMyMac X2023一键安装无需序列号版下载
CleanMyMac X2023只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉,节省宝贵的磁盘空间。CleanMyMac X2023,X代表界面上的最大升级,功能方面有更多增加,与最新 MacOS 系统更加兼容,流畅地与系统性能更加结合,系统维护、系统优化、静默清理、记录更新、清洁缓存、快速和安全删除、卸载应用程序和清空回收站等重要功能。CleanMyMac X2023下载:http://t.csdn.cn/vg3uq
143 0
|
Windows
IE 浏览器用户注意!升级到 Win 11 可能出现数据丢失 Bug
IE 浏览器用户注意!升级到 Win 11 可能出现数据丢失 Bug
IE 浏览器用户注意!升级到 Win 11 可能出现数据丢失 Bug
|
编解码 数据建模 vr&ar
会声会影2022永久激活版及最新版本功能
会声会影更新经过上百个版本的优化迭代,已将操作极大简易化,也是公认的上手视频剪辑好用的剪辑工具。只需将想要的效果拖拽到轨道上,一拖一放间就可以快速成片。会声会影2022支持账户管理模式,可以自主管理激活的设备!!!
1522 0