C# 文件操作总结
一、需求分析
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# 文件操作总结的更多相关文章
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- Node基础篇(文件操作)
文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...
- 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)
========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...
- SQL Server附加数据库报错:无法打开物理文件,操作系统错误5
问题描述: 附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- Linux文件操作的主要接口API及相关细节
操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...
- C语言的fopen函数(文件操作/读写)
头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为: FILE * fopen(const char * path, c ...
- Python的文件操作
文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...
- python 文件操作(转)
python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...
随机推荐
- gradle入门
gradle入门 简介: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于 ...
- GCN 简单numpy实现
`#参考:https://blog.csdn.net/weixin_42052081/article/details/89108966 import numpy as np import networ ...
- lf 前后端分离 (2) 课程数据获取,Serializer的返回
一.关于课程数据的返回 在进行前后端分离时,会通过def 进行前后端传值, 本质上遵循rest 网址规范 增删改查查 get,post,put,del get(\d+) 1.在从数据库获取数据后,进 ...
- python 一些程序规范(跨目录调用文件)
文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 参考: https://www.cnblogs.com/monologuesmw/p/9490093.html 软件 ...
- Tkinter 鼠标键盘事件(二)
一个Tkinter主要跑在mainloop进程里.Events可能来自多个地方,比如按键,鼠标,或是系统事件. Tkinter提供了丰富的方法来处理这些事件.对于每一个控件Widget,你都可以为其绑 ...
- 洛谷 U86564 排队形
洛谷 U86564 排队形 题目传送门 题目背景 \(JDFZ2019\)秋季运动会开始辣!为了使强大的高一 · \(6\)班有一个更好的精神面貌,班主任\(T\)老师和体委\(LY\),\(LYB\ ...
- springboot启动时控制台不显示映射的URL
背景 今天,第一次使用 2.2.0 版本的springboot,在访问接口时发现访问不到,于是在控制台进行 URL 搜索,发现并相关没有内容 原因 springboot版本差异,切换回 2.0.5.R ...
- python中多线程相关
基础知识 进程:进程就是一个程序在一个数据集上的一次动态执行过程 数据集:程序执行过程中需要的资源 进程控制块:完成状态保存的单元 线程:线程是寄托在进程之上,为了提高系统的并发性 线程是进程的实体 ...
- Django2.2 Vue 前后端分离 无法访问Cookie
个人验证后可用配置如下: 环境: - Django 2.2 - djangorestframework 3.9 - django-cors-headers 2.5.3 INSTALLED_APPS = ...
- [LeetCode] 139. Word Break 拆分词句
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine ...