一、需求分析

  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. [linux]在使用rsync时需要注意的小细节

    很简单:前一个目录末尾是目录的话,最后是否带/是有区别的. 具体看测试: # usr @ the-pc in ~/cptest02 [2:28:02] $ ll 总用量 0 # usr @ the-p ...

  2. 数字、字符串、列表、字典,jieba库,wordcloud词云

    一.基本数据类型 什么是数据类型 变量:描述世间万物的事物的属性状态 为了描述世间万物的状态,所以有了数据类型,对数据分类 为什么要对数据分类 针对不同的状态需要不同的数据类型标识 数据类型的分类 二 ...

  3. Python列表操作与深浅拷贝(7)——列表深浅拷贝、删除、反转、排序

    列表复制 浅拷贝:简单类型元素全复制,引用类型元素只复制引用 L1 = [3,2,1,[4,5,6],8,'abc'] L1 [3, 2, 1, [4, 5, 6], 8, 'abc'] L2 = L ...

  4. 01-Redis 简单介绍

    Redis 简单介绍 1.Redis 是什么 Redis 是一种基于键值对的 NoSQL 数据库,与很多键值对数据库不同, redis 中的值可以有 string, hash , list , set ...

  5. router-link路由传参

    router-link传参 [注意] 1.使用params方式传参时,只支持name跳转: 案例如下: 2.使用query传参,注意:两种都支持 案例如下 .

  6. 201871010124--王生涛--《面向对象程序设计(java)》第十二周学习总结

    博文正文开头格式: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nw ...

  7. 04-人脸识别-triplets loss 的解释(转载)

    转载至: https://blog.csdn.net/tangwei2014/article/details/46788025 下面是内容: [前言] 最近,learning to rank 的思想逐 ...

  8. thymeleaf关于js的一些坑

    乍一看,没问题,也许对应用过thymeleaf的小伙伴来说一眼就看出了问题,但是对于新手确实很难发现,thymeleaf会把[[]]中的内容作为内联取值块解析,而不是数组. 解决办法 方法一: < ...

  9. CF888G XOR-MST 最小异或生成树

    CF888G XOR-MST 链接 CF888G 思路 trie上贪心,先左右两边连边,再用一条边的代价连起左右两颗树.因为内部的边一定比跨两棵树的边权笑,显然是对的. 代码自己瞎yy的.启发式合并 ...

  10. 字段加密实践(django-fernet-fields)

    一.fernet介绍 Fernet 用于django模型字段对称加密,使用 crytography 库. 官网帮助文档 1.先决条件 django-fernet-fields 支持Django 1.8 ...