zoukankan      html  css  js  c++  java
  • C#的实现FTP传送文件

    C#实现FTP传送文件

    简介:

    接上文实现对FTP的传送文件,此文和上文可以说是如出一辙,不过此文是通过cmd进行建立连接的,建立连接后也是通过以下几个步骤实现操作。建立文件的层级结构如上文,这里就不啰嗦了。C#实现FTP上传资料

    1.主方法进行调用:

    this.ftpOperation.UploadFile(vIMSPath, vUID, vPassword, vLocalPath + "/" + txtFile, txtFile);

    2.ftpOperation.cs 文件中的实现操作方法

    2.1 主方法中调用的方法:

      public void UploadFile(string vPath, string vUID, string vPassword, string vLocalPath, string file)
            {
                bool status = false;
                //
                status = connectState(vPath, vUID, vPassword);//通过cmd进行建立连接
                if (status)
                {
                    DirectoryInfo theFolder = new DirectoryInfo(vPath + "/" + file);
                    string filename = vLocalPath;
                    Transport(vLocalPath, vPath + "/" + file);//传送文件
                    System.Diagnostics.Process.Start(vPath);
                }
                else
                {
                    MessageBox.Show("未能连接!");
                }
            }

    2.2 通过调用cmd进行建立连接:

     public static bool connectState(string vPath, string vUID, string vPassword)
            {
                bool Flag = false;
                Process proc = new Process();
                try
                {
                    proc.StartInfo.FileName = "cmd.exe";
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.RedirectStandardInput = true;
                    proc.StartInfo.RedirectStandardOutput = true;
                    proc.StartInfo.RedirectStandardError = true;
                    proc.StartInfo.CreateNoWindow = true;
                    proc.Start();
                    string dosLine = "net use " + vPath + " " + vPassword + "/user:" + vUID;
                    proc.StandardInput.WriteLine(dosLine);
                    proc.StandardInput.WriteLine("exit");
                    while (!proc.HasExited)
                    {
                        proc.WaitForExit(1000);
                    }
                    string errormsg = proc.StandardError.ReadToEnd();
                    proc.StandardError.Close();
                    if (string.IsNullOrEmpty(errormsg))
                    {
                        Flag = true;
                    }
                    else
                    {
                        throw new Exception(errormsg);
                    }
                }
                catch (Exception ex)
                {
                    //throw ex;
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    proc.Close();
                    proc.Dispose();
                }
                return Flag;
            }

    2.3 传送文件:

    public static void Transport(string src, string fileName)
            {
                FileStream inFileStream = new FileStream(src, FileMode.Open);
                //if (!Directory.Exists(dst))
                //{
                //    Directory.Move(src,dst);
                //}
                FileStream outFileStream = new FileStream(fileName, FileMode.OpenOrCreate);
    
                byte[] buf = new byte[inFileStream.Length];
                int byteCount;
                while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0)
                {
                    outFileStream.Write(buf, 0, byteCount);
                }
                inFileStream.Flush();
                inFileStream.Close();
                outFileStream.Flush();
                outFileStream.Close();
                File.Delete(src);//删除本地文件
            }
  • 相关阅读:
    laravel tinker的使用
    清空表中数据
    不要为过多思考浪费你的精力
    #tomcat#启动过程分析(上)
    #hashMap冲突原理#详细
    #数组集合知识#HashMap的实现原理
    #数据库#连接数据库的几个步骤
    #数据库#JDBC基础知识
    #数据库#查询语句 1=1的使用条件
    #tomcat#虚拟主机配置及访问(三)
  • 原文地址:https://www.cnblogs.com/wml-it/p/12887003.html
Copyright © 2011-2022 走看看