一、需求分析

  1.将信息记录到本地记事本中。

  2.将记录的信息读取出来。

  3.计算出某个文件夹下所有后缀名为txt的数量和dll的数量。

  4.从网络上下载文件。

二、二话不说上代码

 using System;
using System.IO;
using System.Text; namespace FileOperation
{
class Program
{
static void Main(string[] args)
{
SaveLoginInfo();
ReadLoginInfo();
Ergodic();
} /// <summary>
/// 本地文件中保存登录信息
/// </summary>
static void SaveLoginInfo()
{
#region 在本地保存登录信息
//判断文件是否存在
string loginDicPath = "E:\\Login";
if (!Directory.Exists(loginDicPath))
{
Directory.CreateDirectory(loginDicPath);
}
string loginFilePath = loginDicPath + "\\login.txt";
//可以指定盘符,也可以指定任意文件名,还可以为word等文件
FileStream fs = new FileStream(loginFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//创建写入流
StreamWriter sw = new StreamWriter(fs);
string testContent = "用户已登录";
sw.WriteLine(testContent);
sw.Close();
#endregion
} /// <summary>
/// 读取登录信息
/// </summary>
static void ReadLoginInfo()
{
string loginFilePath = "E:\\Login\\login.txt";
if (File.Exists(loginFilePath))
{
StreamReader st = new StreamReader(loginFilePath, Encoding.UTF8);
string content = st.ReadToEnd();
st.Close();
Console.WriteLine(content);
}
} /// <summary>
/// 遍历文件夹,计算文件夹中txt的数量和dll的数量
/// </summary>
static void Ergodic()
{
string loginDicPath = "E:\\testDic";
DirectoryInfo root = new DirectoryInfo(loginDicPath);
DirectoryInfo[] dics = root.GetDirectories();
int txtNum = ;
int dllNum = ;
foreach (DirectoryInfo info in dics)
{
string path = info.FullName;
//获取该文件夹下的所有文件
DirectoryInfo root_Children = new DirectoryInfo(path);
FileInfo[] filesChildren = root_Children.GetFiles();
//获取完整路径名
foreach (FileInfo fileInfo in filesChildren)
{
if (fileInfo.Extension == ".txt")
{
txtNum += ;
}
else if (fileInfo.Extension == ".dll")
{
dllNum += ;
}
else
{
}
}
}
Console.WriteLine("txt的数量为{0},dll的数量为{1}", txtNum, dllNum);
}
}
}

注:对于需求3的目录结构如下

   

 需求4的代码(下载网络文件到本地)

 using System;
using System.Linq;
using System.Net; namespace FileOperation
{
class Program
{
static void Main(string[] args)
{
DownloadWebFile();
} /// <summary>
/// 下载网络文件
/// </summary>
static void DownloadWebFile()
{
//网络文件地址
string webFileUrl = "http://127.0.0.1:8088//error-file.txt";
//下载地址
string myDictionary = AppDomain.CurrentDomain.BaseDirectory;
//获取文件名称
string fileName = GetFileName(webFileUrl);
if (!HttpFileExist(webFileUrl))
{
Console.WriteLine("服务器上没有该文件");
return;
}
else
{
WebClient client = new WebClient();
client.DownloadFile(webFileUrl, myDictionary + "/" + fileName);
} } /// <summary>
/// 判断网络文件是否存在
/// </summary>
/// <param name="fileUrl"></param>
/// <returns></returns>
static bool HttpFileExist(string fileUrl)
{
try
{
//创建根据网络地址的请求对象
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(fileUrl));
httpWebRequest.Method = "HEAD";
httpWebRequest.Timeout = ;
//返回响应状态是否是成功比较的布尔值
using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse())
{
return response.StatusCode == HttpStatusCode.OK;
}
}
catch (Exception ex)
{
return false;
}
} /// <summary>
/// 获取文件名称
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private static string GetFileName(string url)
{
string fileName = "";
string[] str = url.Split('/');
fileName = str.Last();
return fileName;
}
}
}

三、写到后面的话

  其实这篇都算不上是文件操作汇总,我只是把新学到的知识放到了一个小小的项目中,以便自己后期用到能随时查询出来。C#对文件的操作不仅仅是这些,还有很多操作,就不一一列举验证。

继续加油~

C# 文件操作总结的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

  10. python 文件操作(转)

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

随机推荐

  1. Navicat Premium 详解

    Navicat是一套数据库管理工具,专为简化数据库的管理及降低系统管理成本而设. Navicat 是以直觉化的图形用户界面而建的,可以安全和简单地创建.组织.访问并共用信息.  Navicat Pre ...

  2. JS高阶---为什么说JS是单线程执行的???

    大纲: [主体] (1)如何证明JS运行是单线程的? 上述代码执行顺序结果为:fn()→timeout →timeout 接下来对上述代码做下修改 执行结果如右图所示 接下来点击确认,关闭弹框,再往后 ...

  3. JS高阶---继承模式(借用构造函数继承+组合继承)

    (1)借用构造函数继承 案例如下: 验证: (2)组合继承 案例如下: 验证如下: 结果如右图所示 . .

  4. Appium基础:appium相关API

    1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...

  5. C#基础操作符详解(下)

    书接上文的基本操作符,下文介绍的是其他操作符: 4.2一元操作符: 只要有一个操作数跟在它后面就可以构成表达式,也叫单目操作符. ①&x和*x操作符(很少见有印象即可): 这两个操作符同样也需 ...

  6. webapi跨域实现(CROS、JSONP)

    CROS: /// <summary> /// 支持WebAPI服务器端跨域 /// </summary> public class ServerCrossDomainAttr ...

  7. 求职-如何选择offer

    如何选择offer呢?下面我们从这几部分一起聊聊: HR问你目前拿到哪几个offer了怎么回答好? 选择小公司还是大公司? 为什么刚入行不要去没有人带的部门? 正式员工.合同工和外包人员有什么区别? ...

  8. Python面向对象 | 鸭子方法

    鸭子类型 如果看起来像.叫声像而且走起路来像鸭子,那么它就是鸭子’.python程序员通常根据这种行为来编写程序.例如,如果想编写现有对象的自定义版本,可以继承该对象,也可以创建一个外观和行为像,但与 ...

  9. DIV+CSS+JS实现色彩渐变字体

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. Codeforces Round #549 (Div. 2) E 倍增处理按排列顺序的上一个位置

    https://codeforces.com/contest/1143/problem/E 题意 p为n的一个排列,给出有m个数字的数组a,q次询问,每次询问a数组区间[l,r]中是否存在子序列为p的 ...