国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
C# FTP操作類(D)


/// <summary>
        /// 移除FTP上的指定文件

        /// </summary>
        /// <param name="filename">
要移除的文件名稱</param>
        public void RemoveFile(string filename)
        {
            Connect();
            SendCommand("DELE " + filename);
            ReadResponse();
            if (response != 250)
            {
                errormessage += responseStr;
            }
        }

        /// <summary>
        /// 重命名FTP上的文件

        /// </summary>
        /// <param name="oldfilename">
原文件名</param>
        /// <param name="newfilename">新文件名
</param>
        public void RenameFile(string oldfilename, string newfilename)
        {
            Connect();
            SendCommand("RNFR " + oldfilename);
            ReadResponse();
            if (response != 350)
            {
                errormessage += responseStr;
            }
            else
            {
                SendCommand("RNTO " + newfilename);
                ReadResponse();
                if (response != 250)
                {
                    errormessage += responseStr;
                }
            }
        }

        /// <summary>
        /// 獲得指定文件的大小(如果FTP支持
)
        /// </summary>
        /// <param name="filename">指定的文件
</param>
        /// <returns>返回指定文件的大小
</returns>
        public long GetFileSize(string filename)
        {
            Connect();
            SendCommand("SIZE " + filename);
            ReadResponse();
            if (response != 213)
            {
                errormessage += responseStr;
            }

            return Int64.Parse(responseStr.Substring(4));
        }

        /// <summary>
        /// 上傳指定的文件

        /// </summary>
        /// <param name="filename">
要上傳的文件</param>
        public bool OpenUpload(string filename)
        {
            return OpenUpload(filename, filename, false);
        }

        /// <summary>
        /// 上傳指定的文件

        /// </summary>
        /// <param name="filename">
本地文件名</param>
        /// <param name="remotefilename">遠程要覆蓋的文件名
</param>
        public bool OpenUpload(string filename, string remotefilename)
        {
            return OpenUpload(filename, remotefilename, false);
        }

        /// <summary>
        /// 上傳指定的文件

        /// </summary>
        /// <param name="filename">
本地文件名</param>
        /// <param name="resume">如果存在,則嘗試恢復(fù)
</param>
        public bool OpenUpload(string filename, bool resume)
        {
            return OpenUpload(filename, filename, resume);
        }

        /// <summary>
        /// 上傳指定的文件

        /// </summary>
        /// <param name="filename">
本地文件名</param>
        /// <param name="remote_filename">遠程要覆蓋的文件名
</param>
        /// <param name="resume">如果存在,則嘗試恢復(fù)
</param>
        public bool OpenUpload(string filename, string remote_filename, bool resume)
        {
            Connect();
            SetBinaryMode(true);
            OpenDataSocket();

            bytes_total = 0;

            try
            {
                file = new FileStream(filename, FileMode.Open);
            }
            catch (Exception ex)
            {
                file = null;
                errormessage += ex.Message;
                return false;
            }

            file_size = file.Length;

            if (resume)
            {
                long size = GetFileSize(remote_filename);
                SendCommand("REST " + size);
                ReadResponse();
                if (response == 350)
                    file.Seek(size, SeekOrigin.Begin);
            }

            SendCommand("STOR " + remote_filename);
            ReadResponse();

            switch (response)
            {
                case 125:
                case 150:
                    break;
                default:
                    file.Close();
                    file = null;
                    errormessage += responseStr;
                    return false;
            }
            ConnectDataSocket();

            return true;
        }

        /// <summary>
        /// 下載指定文件

        /// </summary>
        /// <param name="filename">
遠程文件名稱</param>
        public void OpenDownload(string filename)
        {
            OpenDownload(filename, filename, false);
        }

        /// <summary>
        /// 下載并恢復(fù)指定文件

        /// </summary>
        /// <param name="filename">
遠程文件名稱</param>
        /// <param name="resume">如文件存在,則嘗試恢復(fù)
</param>
        public void OpenDownload(string filename, bool resume)
        {
            OpenDownload(filename, filename, resume);
        }

        /// <summary>
        /// 下載指定文件

        /// </summary>
        /// <param name="filename">
遠程文件名稱</param>
        /// <param name="localfilename">本地文件名
</param>
        public void OpenDownload(string remote_filename, string localfilename)
        {
            OpenDownload(remote_filename, localfilename, false);
        }

        /// <summary>
        /// 打開并下載文件

        /// </summary>
        /// <param name="remote_filename">
遠程文件名稱</param>
        /// <param name="local_filename">本地文件名
</param>
        /// <param name="resume">如果文件存在則恢復(fù)
</param>
        public void OpenDownload(string remote_filename, string local_filename, bool resume)
        {
            Connect();
            SetBinaryMode(true);

            bytes_total = 0;

            try
            {
                file_size = GetFileSize(remote_filename);
            }
            catch
            {
                file_size = 0;
            }

            if (resume && File.Exists(local_filename))
            {
                try
                {
                    file = new FileStream(local_filename, FileMode.Open);
                }
                catch (Exception ex)
                {
                    file = null;
                    throw new Exception(ex.Message);
                }

                SendCommand("REST " + file.Length);
                ReadResponse();
                if (response != 350)
                    throw new Exception(responseStr);
                file.Seek(file.Length, SeekOrigin.Begin);
                bytes_total = file.Length;
            }
            else
            {
                try
                {
                    file = new FileStream(local_filename, FileMode.Create);
                }
                catch (Exception ex)
                {
                    file = null;
                    throw new Exception(ex.Message);
                }
            }

            OpenDataSocket();
            SendCommand("RETR " + remote_filename);
            ReadResponse();

            switch (response)
            {
                case 125:
                case 150:
                    break;
                default:
                    file.Close();
                    file = null;
                    errormessage += responseStr;
                    return;
            }
            ConnectDataSocket();

            return;
        }

        /// <summary>
        /// 上傳文件(循環(huán)調(diào)用直到上傳完畢
)
        /// </summary>
        /// <returns>發(fā)送的字節(jié)數(shù)
</returns>
        public long DoUpload()
        {
            Byte[] bytes = new Byte[512];
            long bytes_got;

            try
            {
                bytes_got = file.Read(bytes, 0, bytes.Length);
                bytes_total += bytes_got;
                data_sock.Send(bytes, (int)bytes_got, 0);

                if (bytes_got <= 0)
                {
                    //上傳完畢或有錯誤發(fā)生

                    file.Close();
                    file = null;

                    CloseDataSocket();
                    ReadResponse();
                    switch (response)
                    {
                        case 226:
                        case 250:
                            break;
                        default: //當上傳中斷時

                            {
                                errormessage += responseStr;
                                return -1;
                            }
                    }

                    SetBinaryMode(false);
                }
            }
            catch (Exception ex)
            {
                file.Close();
                file = null;
                CloseDataSocket();
                ReadResponse();
                SetBinaryMode(false);
                //throw ex;
                //當上傳中斷時

                errormessage += ex.Message;
                return -1;
            }

            return bytes_got;
        }

        /// <summary>
        /// 下載文件(循環(huán)調(diào)用直到下載完畢
)
        /// </summary>
        /// <returns>接收到的字節(jié)點
</returns>
        public long DoDownload()
        {
            Byte[] bytes = new Byte[512];
            long bytes_got;

            try
            {
                bytes_got = data_sock.Receive(bytes, bytes.Length, 0);

                if (bytes_got <= 0)
                {
                    //下載完畢或有錯誤發(fā)生

                    CloseDataSocket();
                    file.Close();
                    file = null;

                    ReadResponse();
                    switch (response)
                    {
                        case 226:
                        case 250:
                            break;
                        default:
                            {
                                errormessage += responseStr;
                                return -1;
                            }
                    }

                    SetBinaryMode(false);

                    return bytes_got;
                }

                file.Write(bytes, 0, (int)bytes_got);
                bytes_total += bytes_got;
            }
            catch (Exception ex)
            {
                CloseDataSocket();
                file.Close();
                file = null;
                ReadResponse();
                SetBinaryMode(false);
                //throw ex;
                //當下載中斷時

                errormessage += ex.Message;
                return -1;
            }

            return bytes_got;
        }

        #endregion
    }
}

簡單使用示例:


程序代碼
FTP ftp = new FTP("127.0.0.1", "abc", "123456");

//建立文件夾
ftp.MakeDir("com");
ftp.ChangeDir("com");
ftp.MakeDir("mzwu");
ftp.ChangeDir("mzwu");

//文件夾列表
ArrayList list = ftp.ListDirectories();
for (int i = 0; i < list.Count; i++)
{
    Response.Write(list[i].ToString() + "<br/>");
}

//刪除文件夾(不能直接刪除非空文件夾)
ftp.RemoveDir("com\\mzwu");

//上傳文件
ftp.Connect();
ftp.OpenUpload(@"F:\mzwucom.jpg", Path.GetFileName(@"F:\mzwucom.jpg"));
while (
ftp.DoUpload() > 0)
{
    int perc = (int)(((
ftp.BytesTotal) * 100) / ftp.FileSize);
    Response.Write(perc.ToString() + "%<br/>");
    Response.Flush();
}
ftp.Disconnect();

//下載文件
ftp.Connect();
ftp.OpenDownload("mzwucom.jpg", @"E:\mzwucom.jpg");
while (
ftp.DoDownload() > 0)
{
    int perc = (int)(((
ftp.BytesTotal) * 100) / ftp.FileSize);
    Response.Write(perc.ToString() + "%<br/>");
    Response.Flush();
}
ftp.Disconnect();

//文件列表
ArrayList list = ftp.ListFiles();
for (int i = 0; i < list.Count; i++)
{
    Response.Write(list[i].ToString() + "<br/>");
}

//文件重命名
ftp.RenameFile("mzwucom.jpg", "test.jpg");

//刪除文件
ftp.RemoveFile("test.jpg");

//顯示錯誤信息
Response.Write(ftp.errormessage);

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于Metronic的Bootstrap開發(fā)框架經(jīng)驗總結(jié)(17)-- 使用 summernote插件實現(xiàn)HTML文檔的編輯和圖片插入操作
C# FTP上傳、下載、刪除
使用遞歸方法實現(xiàn),向FTP服務(wù)器上傳整個目錄結(jié)構(gòu)、從FTP服務(wù)器下載整個目錄到本地的功能
[原創(chuàng)]JAVA讀取文件或是數(shù)據(jù)流的源代碼--涵蓋了多種形式
Unity3d之截圖方法
android文件訪問技巧
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服