一、需求分析

  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. sqlmap 注入的方法及技巧

    sqlmap 注入的方法及技巧 当给 sqlmap 这么一个 url 的时候,它会: 1.判断可注入的参数 2.判断可以用那种 SQL 注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些 ...

  2. JMETER 审批任务实战

    业务场景 我们需要对流程任务进行审批,这个和流程发起是不一样的,因为在流程发起时,只需要用户登录后,指定固定的流程方案和数据就可以发起流程了. 流程任务是需要获取任务ID再做任务审批的. 实现思路 1 ...

  3. CRT&EXCRT学习笔记

    非扩展 用于求解线性同余方程组 ,其中模数两两互质 . 先来看一看两个显然的定理: 1.若 x \(\equiv\) 0 (mod p) 且 y \(\equiv\) 0 (mod p) ,则有 x+ ...

  4. v8/src/compilation-statistics.cc pdfium编译

    v8/src/compilation-statistics.cc:18:3: 警告:‘auto’ changes meaning in C++11; please remove it [-Wc++0x ...

  5. Linux命令——trap

    简介 trap是shell内置命令,它对硬件信号和其他事件做出响应.trap定义并激活信号处理过程,信号处理过程是当shell接收信号或其他特殊条件时要运行的处理过程. 语法 trap [-lp] [ ...

  6. 201871010104-陈园园 《面向对象程序设计(java)》第十五周学习总结

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

  7. JVM 启动参数,共分为3类

    JVM 启动参数,共分为3类: 类别 说明 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 非标准参数(-X) 这些参数不是虚拟机规范规定的.因此,不是所有VM的实现(如:H ...

  8. oracle查看被锁的表及解除锁

    -- 查看被锁对象 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session ...

  9. Tkinter--Text文本框样例

    #-*- coding:utf-8 -*- """ Text 文本框样例 实现功能有:Ctrl+a全选文本, 竖向滚动条,横向滚动条(不自动换行) 自动缩放 有谁知道全选 ...

  10. Getting Started with TensorFlow.js

    使用TensorFlow.js,您不仅可以在浏览器中运行深度学习模型进行推理,你还能够训练它们.在这个简单的样例中,将展示一个相当于“Hello World”的示例. 1.引入TensorFlow.j ...