⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpclient.cs

📁 音像资料管理系统光盘制作控件源代码音像资料管理系统光盘制作控件源代码
💻 CS
字号:
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.ComponentModel;
namespace IsoFtp
{
public class StreamCopy
{
    /// <summary>
    /// 进度条,Max=100,Min=1
    /// </summary>
    public int Proess;
    /// <summary>
    /// 进度信息事件
    /// </summary>
    /// <param name="mini">最小值</param>
    /// <param name="max">最大值</param>
    /// <param name="value">当前值</param>
    /// <param name="sender">控件</param>
    public delegate void OnProgressEventHandler(object sender, long mini, long max, long value);
    /// <summary>
    /// 进度信息事件
    /// </summary>
    [Description("进度信息事件")]
    public event OnProgressEventHandler OnProgress;
    /// <summary>
    /// 拷贝文件
    /// </summary>
    /// <param name="txtM">目标文件</param>
    /// <param name="txtY">原文件</param>
    /// <param name="size">buffer大小</param>
    public long CopyFile(string txtY, string txtM, int size)
    {
        ISOCreater.WorkState = true;
        //读
        System.IO.Stream fs = new System.IO.FileStream(txtY, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
        long buffersize = fs.Length;
        long nsize = size;
        int nbuffer = int.Parse((buffersize / nsize).ToString());
        nbuffer = (nbuffer > 0) ? nbuffer : 1;
        //写
        System.IO.FileInfo fi = new System.IO.FileInfo(txtM);
        System.IO.FileStream fsw = fi.Create();
        int i = 1;
        int bfsz = 0;
        if (int.TryParse(buffersize.ToString(), out bfsz))
        {
            size = (size >= bfsz) ? bfsz : size;
        }
        byte[] buffer = new byte[size];
        while (fs.Read(buffer, 0, size) > 0)
        {
            if (!ISOCreater.WorkState)
            {
                fsw.Close();
                System.IO.File.Delete(txtM);
                break;
            }
            Proess = i * 100 / nbuffer;
            if (OnProgress != null)
            {
                OnProgress(this, 1, 100, Proess);
            }
            //写               
            fsw.Write(buffer, 0, size);
            i++;
        }
        fsw.Close();
        fs.Close();
        return buffersize;
    }
}
}


//流到FTP或资源服务器上没有删除

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -