C#文件操作和FTP操作
更新时间:2024-01-26 10:10:01 阅读量: 教育文库 文档下载
C#文件操作和FTP操作
FileInfo类
FileInfo实例封装了计算机文件系统中某个目录中的一个文件,它包含操作文件及获取该文件详细信息的无数方法。当创建一个新的FileInfo对象时,必须给FileInfo构造函数传递一个表示文件名的字符串来关联此对象与文件名对应的文件。此文件名既可以是一个已有的文件,也可以使一个将要创建的不存在文件。
File类
File类支持对文件的基本操作,包括提供用于创建,复制,删除,移动和打开文件的静态方法,并协助创建FileStream对象。FileInfo类和File类之间去多方法调用都是相同的,但是FileInfo类没有静态方法,仅可以用于实例化的对象。
FileStream类
FileStream用于读写二进制的文件。它是一个常用且功能强大的二进制流类,可用于读写单个字节和块字节。因为字符只是编码的字节,所以FileStream也能用于流字符。我们可以使用FileStream自身的构造函数来创建一个新的FileStream对象,或者使用FileInfo的某个方法来完成。
Directory类
Directory类用于复制,移动,重命名,创建,删除目录等典型操作。
DirectoryInfo类
DirectoryInfo类和Directory类之间的关系与FileInfo类和File类之间关系十分类似。
上传文件源代码
publicstaticvoidonload(string file)
{
FtpWebRequest ftp;
FileInfo f = newFileInfo(file);
ftp = (FtpWebRequest)FtpWebRequest.Create(newUri(\ + f.Name));
ftp.Credentials = newNetworkCredential(\, \); ftp.KeepAlive = false;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
ftp.UseBinary = true;
ftp.ContentLength = f.Length;
intbuffLength = 20480; //// byte[] buff = newbyte[buffLength]; intcontentLen; try
{
FileStreamfs = f.OpenRead();
Streamsw = ftp.GetRequestStream(); contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0) { sw.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength); }
sw.Close(); fs.Close();
MessageBox.Show(\上传成功\);
} catch (Exception e) {
MessageBox.Show(e.Message.ToString()); } }
下载文件代码
publicvoid Download(stringftpServerIP, stringftpUserID, stringftpPassword, stringfileName,
string Destination)
{
FtpWebRequestreqFTP; try
{
FileStreamoutputStream = newFileStream(Destination + \ + fileName, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(newUri(\ + ftpServerIP + \ +
fileName));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = newNetworkCredential(ftpUserID, ftpPassword FtpWebResponseftpresponse = (FtpWebResponse)reqFTP.GetResponse(); StreamftpStream = ftpresponse.GetResponseStream(); long cl = ftpresponse.ContentLength; intbufferSize = 2048; intreadCount;
byte[] buffer = newbyte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount> 0) {
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize); } ftpStream.Close(); outputStream.Close(); ftpresponse.Close();
MessageBox.Show(\下载成功\); }
catch (Exception ex) {
MessageBox.Show(ex.ToString()); } }
遍历文件夹中的文件
privatevoid button3_Click(object sender, EventArgs e)
{
DirectoryInfodir = newDirectoryInfo(textBox1.Text.ToString()); j = 0;
label1.Text = GetAllFiles(dir).ToString(); }
privateintGetAllFiles(DirectoryInfodir) {
//为 FileInfo 和 DirectoryInfo 对象提供基类,因此它可以强制转换为FileInfo对象和
DirectoryInfo对象
//GetFileSystemInfos()检索表示当前目录的文件和子目录的强类型 FileSystemInfo 对象的数组 FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); foreach (FileSystemInfo i infileinfo) {
if (i isDirectoryInfo) //判断如果检索到的是子目录,则继续向下检索,否则文件数加一。 {
GetAllFiles((DirectoryInfo)i); } else
{ j++;
} } return j; }
通过对话框选择文件或是文件夹
///
///通过对话框来选择一个或是多个文件 ///
///
privatevoidBtnSelectFile_Click(object sender, EventArgs e) {
//通过此类来选择一个文件,并获得文件的信息 OpenFileDialogfileDialog = newOpenFileDialog(); //设置是否能选项多个文件夹 fileDialog.Multiselect = true; //设置选择文件对话框的标题 fileDialog.Title = \请选择文件\; //设置选择文件的类型
//fileDialog.Filter = \ fileDialog.Filter = \文本文件 |*.txt;*.docx;*.pptx|All files (*.*)|*.*\; //判断是否选择文件,如果选择,则继续进行操作 if (fileDialog.ShowDialog()==DialogResult.OK) {
//获取文件夹包括路径的全部名称 string file = fileDialog.FileName; textBox2.Text = file;
} }
Filter属性:用来获取或设置当前文件名筛选器字符串,该字符串决定对话框的【另存为文件类型】或【文件类型】框中出现的选择内容。对于每个筛选选项,筛选器字符串都包含筛选器说明、垂直线条(|)和筛选器模式。不同筛选选项的字符串由垂直线条隔开,例如:“文本文件(*.txt)|*.txt|所有文件(*.*)|*.*”。还可以通过用分号来分隔各种文件类型,可以将多个筛选器模式添加到筛选器中,例如:“图像文件(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG; *.GIF|所有文件(*.*)|*.*”。
///
///选择要进行转换的文件夹
///
///
privatevoidbutton_SelectFile_Click(object sender, EventArgs e) {
//通过此类来获得弹出一个文件夹,获得一个文件夹,并得到文件夹的信息 FolderBrowserDialog dialog = newFolderBrowserDialog(); //设置选择文件夹对话框的标题 dialog.Description = \请选择文件路径\; //判断文件夹是否选中
if (dialog.ShowDialog() == DialogResult.OK) {
//获得文件夹的完全路径
stringfoldPath = dialog.SelectedPath;
textBox1.Text = foldPath; } }
///
///
privatevoidbutton_SelectFile_Click(object sender, EventArgs e) {
//通过此类来获得弹出一个文件夹,获得一个文件夹,并得到文件夹的信息 FolderBrowserDialog dialog = newFolderBrowserDialog(); //设置选择文件夹对话框的标题 dialog.Description = \请选择文件路径\; //判断文件夹是否选中
if (dialog.ShowDialog() == DialogResult.OK) {
//获得文件夹的完全路径
stringfoldPath = dialog.SelectedPath;
textBox1.Text = foldPath; } }
正在阅读:
C#文件操作和FTP操作01-26
晶种活化强化铝酸钠溶液的种分分解06-07
护理核心制度督查整改措施03-31
改革开放三十年有感:改革开放30年的变化02-13
女性消费心理03-08
天津—邯郸—安阳游记 - 图文11-10
留言板系统设计报告12-08
对工程项目管理模式创新的研究与分析03-08
给医护人员的表扬信范文参考02-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 操作
- C#
- 文件
- FTP
- 建筑工程投标方案的编写及其应注意的若干问题
- 74LS190交通灯控制电路的设计与仿真课程设计
- web前端毕业设计论文 - 图文
- 物流系统分析
- 第一讲 数的整除(教师版)
- 浙江省普通高中第一批精品选修课程目录
- 《工程项目管理》世纪大桥
- 实验三 信息加密 - 图文
- 密封式电炉项目可行性研究报告编写格式及参考(模板word)
- 基于Siemens S7-300 PLC的锅炉DCS系统设计 - 图文
- 《石油化工储运罐区VOCs治理项目油气连通工艺实施方案及安全措施指导意见》的通知 - 图文
- 计算机网络课后答案整理
- 电子表格操作1
- 第九章 统计指标和统计指数
- 汽车尾气污染与控制研究
- 2016-2017学年度第二学期小学二年级班主任工作计划
- 财务战略联盟 - 青岛海尔与通用电气并购案例分析
- 小学家长会活动方案
- 五年级语文上册 25.七律 长征练习 新人教版
- 沟通与协调试题及答案