首页 > 编程语言 >C#获取FTP服务器上的文件

C#获取FTP服务器上的文件

时间:2024-01-14 10:07:04浏览次数:27  
标签:FTP string C# msg 服务器 line reqFTP

在文件上传到FTP服务器时会出现没传上去的情况,我不知道为什么会出现这种情况,不知怎么解决就写了段程序,目的是执行完上传以后,去服务器读一遍,看一下有没有上传成功,没成功的话在传一次

首先看下我的FTP服务器页面以及文件

我框住的是文件名和文件目录

C#获取FTP服务器上的文件_用户名

我为了方便看到结果,将查出的数据放到一个下拉列表中。所以定义一个返回类型为list的方法

 

/// <summary>
        /// 从ftp服务器上获得文件列表
        /// </summary>
        /// <param name="RequedstPath">服务器下的相对路径</param>
        /// <returns></returns>
        public static List<string> GetFile(string RequedstPath= "/Test_Data/SMARC_PTZ/2023/03/17")     ①
        {
            List<string> strs = new List<string>();
            try
            {
                string uri = "ftp://192.168.1.100" + RequedstPath;   //目标路径 path为服务器地址        ②
                FtpWebRequest reqFTP = (FtpWebRequest)WebRequest.Create(new Uri(uri));
                // ftp用户名和密码
                reqFTP.Credentials = new NetworkCredential("用户名", "密码");                   ③
                reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
                WebResponse response = reqFTP.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream());//中文文件名

                string line = reader.ReadLine();                                     ④   
                while (line != null)
                {
                    if (!line.Contains("<DIR>"))
                    {
                        string msg = line.Substring(0).Trim();
                        msg = msg.Substring(msg.Length - 24, 24);                         ⑤
                        strs.Add(msg);
                    }
                    line = reader.ReadLine();
                }
                reader.Close();
                response.Close();
                return strs;
            }
            catch (Exception ex)
            {
                Console.WriteLine("获取文件出错:" + ex.Message);
            }
            return strs;
        }

看详解:

①:RequedstPath是我FTP服务器上要查询的文件所在的目录,做成变量传入即可

②:uri即我的FTP服务器地址,假设是192.168.1.100

③:用户名和密码输入自己的就行了

④:开始读取了

⑤:读取出来后我要一行一行的处理,因为读出来并不是只有文件名,还有大小、类型、修改时间,我把多余的字符串截掉只取有用的

到这里就完成了,把读出来的数据放到list里然后返回出去,再放到combox下拉框效果是这样的

C#获取FTP服务器上的文件_用户名_02

 

C#获取FTP服务器上的文件_用户名_03

 是ok的,可以查出来

 

标签:FTP,string,C#,msg,服务器,line,reqFTP
From: https://blog.51cto.com/u_16371710/9238049

相关文章

  • C#创建及读取DAT文件操作
    *.DAT从后缀名上也能理解其中的含义即:data文件,数据文件;这个文件有的可以用记事本工具打开,但是加密后就不一定了。很多程序都创建dat文件来保存设定。创建一个只有自己才能解析得dat文件,并且可以读取和写入,写一个类,它可以创建一个只有使用这个类才能解析得dat文件。同时读取或写入......
  • C#读取Excel表格中的内容
    随手记录,我自己也搞不明白。直接拿去用了publicstaticstringReadXLSX(stringfilePath){stringsb="";using(varfile=newFileStream(filePath,FileMode.Open,FileAccess.Read)){varhssfworkbook=ne......
  • C#生成Excel文件
    在实际运用当中,我是将数据插入到EXCEL模板中,然后生成出带有数据的文档,并将生成的文档传入到FTP当中去的,这篇文章用来记录怎么将数据插入到EXCEL模板中。我的项目是winform程序,我将模板存放在exe程序的根目录下。在写这个方法的时候,我传入了三个参数1、数据源DataModel ;我的数据......
  • c#中DataTable转List的2种方法示例
    1. 直接写一个datatable转list的类publicList<Dictionary<string,object>>DatatoTable(DataTabledt){List<Dictionary<string,object>>list=newList<Dictionary<string,object>>();foreach(DataRowdrindt.Rows)//每一行......
  • C#中的数据库访问类DBHelper
    1、在配置文件中添加连接字符串首先在配置文件中的<configuration>中加入数据库连接字符串,配置文件后缀为.config,例如:App.config<connectionStrings><addname="你给此条链接起的名字,随便起,访问的时候可以用。比如:AAA"connectionString="DataSource=你的服务器地址;Init......
  • C#调用webapi发送带json参数的post请求
    嗯。。很久不更新,因为跳槽新公司了,要学的东西太多太忙了。也没时间记录,今天又写了一个C#调用webapi发送带json参数的post请求拿数据的方法,所以来到这里记录一下///<paramname="url">请求地址</param>///<paramname="jsonParas">请求体</param>///<paramnam......
  • C#将从数据库查处的table格式的数据转为json
    这里的代码是封装好的类,将Datatable作为参数传进来即可解析出json格式的数据,看代码publicstaticstringToJson(DataTabledt){intcount=dt.Rows.Count;//将DataTable格式的数据转换成json格式StringBuilderjsonBuilder=ne......
  • C#实现串口通讯的方法
    帖子只用于记录本人的学习记录,算是给未来的自己出一份傻瓜式教学。 在C#语言上,一般上位机是由Winform开发,也有WPF,但是我不会WPF上位机无非就是发送数据与接收数据,可以使用C#的SerialPort方法winform自带SerialPort控件,可以将此控件直接拖到页面上,然后实例化该控件,也可以直接实例化......
  • C#中substring ()的用法
    String.SubString(int index,int length)  index:开始位置,从0开始   length:你要取的子字符串的长度  示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacestr_sub{classProgram{staticvoidMain(string[]args){strin......
  • C#常用工具安装方法及资源整理
    1、GitGit下载地址Git安装教程2、SQLServer2019下载地址安装教程3、VisualStudio2022下载地址安装教程4、TortoiseGit(x64)  2.13.0.1中文版下载地址安装教程5、sqlserver2014下载及安装教程......