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);//删除本地文件
    }

以上就是C#实现FTP传送文件的示例的详细内容,更多关于c# ftp传送文件的资料请关注我们其它相关文章!

(0)

相关推荐

  • C#基于FTP协议的简易软件自动升级程序

    最近在重写了一个老的产品条码扫描程序,客户端数越有30个,因为经常有更新,C/S维护非常不方便,所以做一个自动更新程序特别有必要. 在网上随便找了找自动更新的方案,大多使用VS的发布/更新功能,不太喜欢此方案,觉得太麻烦,然后自己初步琢磨了一下如下方案. 现在比较喜欢的编程方式,先画图. 软件更新流程 安装包的制作 为了简单,采用了自解压压缩包的方式制作更新包,将整个新程序包打包为一个自解压压缩包. 以下是我的自解压包的参数设置,怎样制作自解压包网上有很多教程,可以自己去搜索. 常规-解压路径:

  • C# 实现FTP上传资料的示例

    1.通过用FTP进行上传文件,首先要实现建立FTP连接,一般建立FTP连接,需要知道FTP配置有关的信息.一般要在Bean中建立一个ServiceFileInfo.cs文件进行记录,一般需要FTP地址.登录用户名和登录密码.然后通过其他页面进行访问读取.代码样式如下: class ServiceFileInfo { // service1 public static string txtFilePath = @"ftp://12.128.128.01/FileName/"; //use

  • C# 中实现ftp 图片上传功能(多快好省)

    前言 此篇讲到的是图片上传功能,每个网站必定会有这样类似的功能,上传文件.上传图片等等.那么接下来,看看我们EF+uploadfile+ftp如何玩转上传图片吧 效果预览 具体实现 一个简单数据库 只有一个主键Id,一个身份证正面路径和一个身份证背面路径三个字段. 首先呢,我们把实体类新建好如下: public class ImageModel:BaseEntity { /// <summary> /// 用户Id /// </summary> public int ID { ge

  • C#操作FTP出现500错误解决办法

    在网上也没有找到好的解决方案,于是自己研究了下给解决了,分享给大家,希望对大家能有所帮助. 一.异常信息 这种情况是因为FTP设置的默认目录引发的,以我现在的项目为例,在程序中我要访问的路径为 ftp://192.168.0.225/2007/35/0037/00001/1.jpg 这个路径,但服务器上设置的默认路径为 E:\pmserver\FTPServer\FTPSERVER , 我们打开相应的ftp目录看下,这个目录下面并没有我要访问的2007这个文件夹 那2007这个文件夹在什么位置呢

  • C#开发windows服务实现自动从FTP服务器下载文件

    最近在做一个每天定点从FTP自动下载节目.xml并更新到数据库的功能.首先想到用 FileSystemWatcher来监控下载到某个目录中的文件是否发生改变,如果改变就执行相应的操作,然后用timer来设置隔多长时间来下载.后来又想想,用windwos服务来实现. 效果图: 执行的Log日志: INFO-2016/5/24 0:30:07--日志内容为:0/30/7进行time触发 INFO-2016/5/24 1:30:07--日志内容为:1/30/7进行time触发 INFO-2016/5/

  • C#利用SFTP实现上传下载

    sftp是ftp协议的升级版本,是牺牲上传速度为代价,换取安全性能,本人开始尝试使用Tamir.SharpSSH.dll但它对新版本的openssh 不支持,所有采用Ssh.Net方式 需要依赖:Renci.SshNet.dll 下载链接 /// <summary> /// SFTP操作类 /// </summary> public class SFTPHelper { #region 字段或属性 private SftpClient sftp; /// <summary&g

  • 分享用于操作FTP的客户端C#类

    这是一个用于操作FTP的客户端C#类,类已经封装好了各种常用的Ftp操作方法,调用非常简单,你不需要关心ftp连接和操作的细节,只要调用这个类里的相关方法就可以了. using System; using System.Net; using System.IO; using System.Text; using System.Net.Sockets; using System.Threading; namespace DotNet.Utilities { public class FTPClie

  • FtpHelper实现ftp服务器文件读写操作(C#)

    最近做了一个项目,需要读取ftp服务器上的文件,于是参考了网上提供的一些帮组方法,使用过程中,出现一些小细节问题,于是本人做了一些修改,拿来分享一下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Threading; using System.Configuration; na

  • C#操作ftp类完整实例

    本文实例讲述了C#操作ftp类.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; using System.Globalization; namespace FtpTest1 { public class FtpWeb { string ftpServerIP; string ftpRemotePath; st

  • C#开发教程之FTP上传下载功能详解

    搭建FTP服务器,供大家参考,具体内容如下 最近要实现这样一个功能:FTP服务器的上传和下载,搜集了一些资料,在c播客上看到昵称为"傻丫头和科技"的作者写的一篇文章写得挺好,有的地方个人觉得不是很详细,自己稍作修改后放在这和大家一起学习分享. 1.首先我们创建一个用户,当然不想创建用户使用当前登录的用户也可以当前用户登录.(右键"计算机"--管理--) 2.我们要安装必须的IIS组件(控制面板--程序--打开或关闭Windows功能) 3.在本地创建一个文件夹作为F

  • c# FTP上传文件实例代码(简易版)

    实例如下: /// <summary> /// 上传ftp服务 /// </summary> /// <param name="path">文件地址</param> /// <returns></returns> public string Upload(string path) { var client = new WebClient(); client.Credentials = new NetworkCred

随机推荐