.NET(C#) File类的常用方法
MSDN的File类
File类在MSDN:https://msdn.microsoft.com/zh-cn/library/system.io.file_methods(v=vs.110).aspx
FileHelper.cs
FileHelper提供的功能:
- 递归获取指定目录下所有的文件
- 获取指定目录下所有的子目录
using System;
using System.Collections.Generic;
using System.IO; public class FileHelper
{
/// <summary>
/// 递归获取所有的目录
/// </summary>
/// <param name="strPath"></param>
/// <param name="lstDirect"></param>
public static void GetAllDirectorys(string strPath, ref List<string> lstDirect)
{
if (Directory.Exists(strPath) == false)
{
Console.WriteLine("请检查,路径不存在:{0}",strPath);
return;
}
DirectoryInfo diFliles = new DirectoryInfo(strPath);
DirectoryInfo[] directories = diFliles.GetDirectories();
var max = directories.Length;
for (int dirIdx = ; dirIdx < max; dirIdx++)
{
try
{
var dir = directories[dirIdx];
//dir.FullName是某个子目录的绝对地址,把它记录起来
lstDirect.Add(dir.FullName);
GetAllDirectorys(dir.FullName, ref lstDirect);
}
catch
{
continue;
}
}
} /// <summary>
/// 遍历当前目录及子目录,获取所有文件
/// </summary>
/// <param name="strPath">文件路径</param>
/// <returns>所有文件</returns>
public static IList<FileInfo> GetAllFiles(string strPath)
{
List<FileInfo> lstFiles = new List<FileInfo>();
List<string> lstDirect = new List<string>();
lstDirect.Add(strPath);
DirectoryInfo diFliles = null;
GetAllDirectorys(strPath, ref lstDirect); var max = lstDirect.Count;
for (int idx = ; idx < max; idx++)
{
try
{
diFliles = new DirectoryInfo(lstDirect[idx]);
lstFiles.AddRange(diFliles.GetFiles());
}
catch
{
continue;
}
}
return lstFiles;
}
}
File类实用方法
获取父目录
var currentDirectory = System.Environment.CurrentDirectory;//当前程序的目录
var parentDirPath = string.Empty;
var parentDir = new DirectoryInfo(currentDirectory).Parent;
if (parentDir != null)
{
parentDirPath = parentDir.FullName; //上一级目录
}
else
{
Console.WriteLine("ERROR:当前目录没有父级目录");
}
读取和修改文本内容
//读取所有内容
var fileContent = File.ReadAllText(versionFileName);
//修改文本内容
File.WriteAllText(versionFileName, strNewVer);
方法二
参考文档:https://msdn.microsoft.com/zh-cn/library/8bh11f1k.aspx
using (var sw = new StreamWriter(FilePath))
{
sw.Write(sb.ToString());
}
创建文本并写入内容
using (StreamWriter streamWriter = File.CreateText(resFileName))
{
var fileInfos = FileHelper.GetAllFiles(targetPath);
var fileMax = fileInfos.Count;
for (int fileIdx = ; fileIdx < fileMax; fileIdx++)
{
var fileInfo = fileInfos[fileIdx];
if (fileInfo.Extension != ".meta")
{
var filePath = fileInfo.FullName.Replace(parentDirPath, "");
filePath = filePath.Replace(@"\", "/");
var fileStr = string.Concat(filePath, "&", HashHelper.GetSHA1(fileInfo.FullName));
streamWriter.WriteLine(fileStr);
Console.WriteLine(fileStr);
if (fileLine < Int64.MaxValue)
{
fileLine += ;
}
else
{
overflowMsg = "文件行数太多啦,未统计。";
}
}
}
}
@ 文件路径
var filePath = @"d:\Tools\"; 等价于 var filePath = "d:\\Tools\\";
.NET(C#) File类的常用方法的更多相关文章
- java中File类的常用方法总结
java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...
- Java分享笔记:File类中常用方法的介绍
java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 p ...
- File类的常用方法和练习
File类常用的判断方法 import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /** * Fi ...
- IO流3 --- File类的常用方法2 --- 技术搬运工(尚硅谷)
File类的判断功能 @Test public void test5(){ File file = new File("hello.txt"); //判断是否是文件目录 Syste ...
- IO流2 --- File类的常用方法1 --- 技术搬运工(尚硅谷)
File类的获取功能 @Test public void test2(){ File file1 = new File("hello.txt"); File file2 = new ...
- Day 13:File类的常用方法
路径问题: 绝对路径: 该文件在硬盘上 的完整路径.绝对路径一般都是以盘符开头的. 相对路径: 相对路径就是资源文件相对于当前程序所在的路径. . 当前路径 .. 上一级路径 注意: 如果程 ...
- java file类的常用方法和属性
1 常用方法 a.createNewFile方法 public boolean createNewFile() throws IOException 该方法的作用是创建指定的文件.该方法只 ...
- File类的常用方法
public static void GetFileInfo() { File file=new File("e:","two.txt ...
- File类之常用方法
package IoDemo; import java.io.File; import java.io.IOException; /** * @Title:FileTest * @Descriptio ...
随机推荐
- 常让人误解的一道js小题
一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...
- 移动Web开发的bug及解决方案
我目前移动Web开发遇到的bug以及解决方案(慢慢补充当中). 1.android4.0以上一部分手机的webview中,当canvas小于屏幕大小时,绘图时会出现重影,就是说一个图只绘制了一遍,却出 ...
- TOCControl上实现右键
第一步:新建另外一个窗体 首先要定义一个全局变量 ILayer. 窗体要带参数,以便将 ILayer 传递过来. 获取属性列表. using System; using System.Collecti ...
- SqlIte数据库并发性
把遇到的一些小问题都记下来,告诉自己,一些小细节会铸成打错的 今天没事复习以前的知识,用sqlite做数据库,发现修改数据的时候等好久才有反应,而且还失败,可是过一会之后又会好,好了以后又是一样,种以 ...
- Android View各种尺寸位置相关的方法探究
Android View各种尺寸位置相关的方法探究 本来想做一个View间的碰撞检测之类的. 动手做了才发现不是想象的那么简单. 首先,写好了碰撞检测的工具类如下: package com.mengd ...
- 设置UIImage的渲染模式:UIImage.renderingMode
设置UIImage的渲染模式:UIImage.renderingMode 着色(Tint Color)是iOS7界面中的一个.设置UIImage的渲染模式:UIImage.renderingMode重 ...
- 在eclipse中安装上genymotion插件
1.安装genymotion-vbox,选择安装目录. 具体安装过程可见http://www.cnblogs.com/wuyudong/p/5601897.html 2.登录并创建模拟器 3. ...
- Android 异步Http框架简介和实现原理
在前几篇文章中<Android 采用get方式提交数据到服务器><Android 采用post方式提交数据到服务器><Android 采用HttpClient提交数据到服 ...
- IOS开发之待探究随录
设置导航条的问题
- MicroStation VBA 可视化界面
第十章 可视界面 Private Sub UserForm_Initialize() Dim ViewCen As Point3d Dim MyView As View For Each MyView ...