一、需求分析

  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. 多线程学习笔记(一) InvokeRequired 和 delegate

    入门示例: 假如有一个label,我们希望像走马灯一样,从1显示到100 private void button1_Click(object sender, EventArgs e) { ; i &l ...

  2. 5.如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

    作者:中华石杉 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的 ...

  3. STM32F4 串口IAP程序要点

    1. IAP(bootloader)程序 1.1 内部Flash地址分配 /* Start of the Flash address */ #define STM32_FLASH_BASE 0x080 ...

  4. 09、日志轮转+rsync同步

    logrotate   -  rotates,  compresses,  and    mails system logs 日志轮转 rotate 日志切割 轮转   切割   备份   归档 常见 ...

  5. Ubuntu环境下载程序到STM32

    1 JLink方式 1.0 下载JLink 传送门:SEGGER官网 图1.0 下载JLink 1.2 安装JLink 双击打开下载文件:JLink_Linux_V644i_x86_64.deb 1. ...

  6. C++学习03_引用

    基本使用 C++提供了给变量命名的机制,就是引用(Reference).引用是一种复合类型. //语法 数据类型 &name=data 注意,引用在定义时需要添加&,在使用时不能添加& ...

  7. 跟着ALEX 学python day4集合 装饰器 生成器 迭代器 json序列化

    文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  装饰器 : 定义: 装饰器 本质是函数,功能是装饰其他函数,就是为其他函数添加附加功能. 原则: 1.不能修改被装 ...

  8. 201871010105-曹玉中《面向对象程序设计(java)》第十五周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十五周学习总结 项目 内容 这个作业属于哪个过程 https://www.cnblogs.com/nwnu-daizh/ ...

  9. CF1245 A. Good ol' Numbers Coloring(java与gcd)

    题意:给定数字A和数字B,问是否满足gcd(A,B)==1. 思路:可以直接写函数gcd.也可以用大数自带的gcd功能. 代码1: /* @author nimphy @create 2019-11- ...

  10. 4.Go-结构体、结构体指针和方法

    4.1.结构体 结构体:将一个或多个变量组合到一起形成新的类型,这个类型就是结构体,结构体是值类型 定义结构体和赋值 //Learn_Go/main.go package main import &q ...