C#对Windows文件/文件夹/目录的一些操作总结
1. 在一个目录下创建一个文件夹
if (!System.IO.Directory.Exists(path))
System.IO.Directory.CreateDirectory(path);
2. 时间的字符串表示法 20080616091219
System.DateTime.Now.ToString("yyyyMMdd"), System.DateTime.Now.ToString("HHmmss")
DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")
3. 获取系统的特殊文件的路径
String path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
//有下划线的为Environment.SpecialFolder的枚举,还有很多
4. 拷贝一个文件到另一个目录下
System.IO.File.Copy(要拷贝的文件目录,目的目录);
注意:两个目录都要是具体的文件名,不能是文件夹。
5. 取当前程序集。EXE文件所在的绝对路径
String locationPath =
System.Reflection.Assembly.GetExecutingAssembly().Location
6. 取得运行中的程序名字和路径(和上面的结果一样)
System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8);
System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
的意思就是取得运行中的程序名字和路径
但前面有file:///重要的格式
file:///D:/Project/bin/Debug/WindowsApplication.EXE
System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8);
的意思就是从第8位开始取得字符串
D:/Project/bin/Debug/WindowsApplication.EXE
7. 将文件目录按/号分割开(如上例中的目录)
string[] strLoc;
strLoc = locationPath.Split('//');
想取到哪一级目录就取到哪一级目录
String strParticalPath;
for (int j = 0; j < strLoc.Length - 1; j++)
{
strParticalPath += strLoc[j] + "//";
}
8. 打开某个文件夹/文件
System.Diagnostics.Process.Start(path);
path为文件夹目录
, FileMode.Open);
String path2=@”C:/新文件夹的名字/文件的名字”
9. 取得目录(m_path)下所有文件的文件名
//返回的是m_path目录里每一个.txt文件的完整的路径
//其中m_path为目录的完整路径
string[] fileName = System.IO.Directory.GetFiles(m_path,"*.txt");
//取得第一个.txt文件的路径
m_allFilePath = fileName[0];
//如果目录下还有子目录就用下面这个
string[] fileNames =System.IO.Directory.GetFiles(m_path,"*",SearchOption.AllDirectories);
10. 获取一个文件夹中所有文件的大小
long fileSize = 0;
string sOutDir = @"D:/data/CD01";
DirectoryInfo dirInfo = new DirectoryInfo(sOutDir);
foreach (FileInfo fileInfo in dirInfo.GetFiles())
{
fileSize += fileInfo.Length;
}
11. DirectoryInfo.GetFiles();DirectoryInfo.GetDirectories();DirectoryInfo.GetFileSystemInfos()比较
DirectoryInfo dir = new DirectoryInfo(path);// path为文件夹路径
FileInfo[] a = dir.GetFiles();//获取路径下文件的名字
DirectoryInfo[] b = dir.GetDirectories();//获取路径下文件夹的名字
FileSystemInfo[] c = dir.GetFileSystemInfos();//获取路径下文件和文件夹的名字
12. 一个文件夹(包括子文件夹)中所有文件的个数
public static int GetFileCount(string path)
{
System.IO.DirectoryInfo dir = new DirectoryInfo(path);
int count = dir.GetFiles().Length;
foreach (DirectoryInfo d in dir.GetDirectories())
{
count += GetFileCount(d.FullName);
}
return count;
}
13. 一个文件夹(包括子文件夹)中所有文件的大小
public static long FolderSize(string path)
{
long Fsize = 0;
try
{
FileInfo[] files = (new DirectoryInfo(path)).GetFiles();
foreach (FileInfo file in files)
{
Fsize += file.Length;
}
DirectoryInfo[] folders = (new DirectoryInfo(path)).GetDirectories();
foreach (DirectoryInfo folder in folders)
{
Fsize += FolderSize(folder.FullName);
}
}
catch (Exception ex)
{
return Fsize;
}
return Fsize;
}
14. 文件读写操作
Static void Main(string[] args)
{
const string filePath = @””;
FileStream fs = null;
try
{
Console.WriteLine(“开始往文件中写内容”);
fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
byte[] bytes = Encoding.Default.GetBytes(“这是一个字符串,将插入到文本文件中”);
//向流中写入指定的字节数组
fs.Write(bytes, 0, bytes.Length);
//将缓存区的内容存储到媒体并清除缓存区。
fs.Flush();
//将流指针移到开头
fs.Seek(0, SeekOrigin.Begin);
byte[] bytes2 = new byte[bytes.Length];
fs.Read(bytes2, 0, bytes.Length);
string str = Encoding.Default.GetString(bytes2);
Console.WriteLine(“从文件中读出的字符串为” + Environment.NewLine+str);
}
catch(IOException ex)
{
Console.WriteLine(“发生的文件处理的错误!” + ex.Message);
}
finally
{
Console.WriteLine(“不论是否发生异常,都会执行finally到这里”);
if(fs != null)
{
fs.Close();
}
Console.ReadLine();
}
}
15. 生成一个.txt文件,并往里写一串字符串。
fileName = @"C:/a.txt";
FileStream mystream = new FileStream(fileName, FileMode.OpenOrCreate);
StreamWriter Mywriter = new StreamWriter(mystream, Encoding.Default);
string text = "";
Mywriter.Write(text);
Mywriter.Close();
mystream.Close();
16. 删去某个文件
// m_allFilePath为文件的完整路径,包括后缀
System.IO.File.Delete(m_allFilePath);
- 顶
- 0
C#对Windows文件/文件夹/目录的一些操作总结的更多相关文章
- windows 下文件的高级操作
本文主要说明在Windows下操作文件的高级方法,比如直接读写磁盘,文件的异步操作,而文件普通的读写方式在网上可以找到一大堆资料,在这也就不再进行专门的说明. 判断文件是否存在 在Windows中并没 ...
- 如何查看windows某个目录下所有文件/文件夹的大小?
如何查看windows某个目录下所有文件/文件夹的大小? TreeSize Free绿色汉化版是一款硬盘空间管理工具,用树形描述出来,能够显示文件大小和实际占用空间数及浪费的空间等信息,让你做出相应的 ...
- [转帖]如何查看windows某个目录下所有文件/文件夹的大小?
如何查看windows某个目录下所有文件/文件夹的大小? https://www.cnblogs.com/gered/p/10208281.html 挺好的工具 linux 上面 我就是使用 du - ...
- 获取WINDOWS特殊文件夹
const// registry entries for special paths are kept in : REGSTR_PATH_SPECIAL_FOLDERS = REGSTR_PAT ...
- Eclipse 中打开选中文件/文件夹所在目录
习惯了使用VS中的 ”通过右键打开选中文件/文件夹在电脑中的目录”功能后, 当切换到Eclipse环境后,发现居然找不到这个功能, 虽可以通过右键文件属性,看到文件路径,复制路径然后在资源管理器中打开 ...
- windows 打开文件夹
@echo off rem 建立链接 net use \\192.168.2.3\share /user:username password rem 打开共享文件夹 explorer \\192.16 ...
- Windows各个文件夹介绍
windows文件介绍 总结 ├WINDOWS │ ├-system32(存放Windows的系统文件和硬件驱动程序) │ │ ├-config(用户配置信息和密码信息) │ │ │ └-system ...
- Windows删除文件夹下的指定格式文件(递归删除)
问题描述: 今天遇到一个需求,需要对文件夹进行文件筛选.目录结构较为复杂(目录较多,层次较深),数据量较大(总共60GB左右). 鉴于上述情况,直接排除了人工处理方式(否则小伙伴们会打死我的). 解决 ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
随机推荐
- DotNetBar ItemPanel添加WinForm Control
int itemcount = 20; Random rd = new Random(); itemPanel1.Items.Clear(); for (int i = 0; i < itemc ...
- StiReport简单使用
try { StiReport stiReport1 = new StiReport(); DataSet FDataSet = new DataSet(); DataTable table = ne ...
- ubuntu新建组合用户命令不管用
当我们新建了组和用户的时候发现一些命令不管用了,这是什么问题呢. 一.解决方案. 通过以下命令添加组和用户,切换到新用户,发现命令不管用,只有一个$符号. groupadd 新组名 ----添加组 u ...
- linux4.10.8 内核移植(一)---环境搭建及适配单板。
一.环境搭建 源码包下载:git clone https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.10.8.tar.gz 或者直接去kernel. ...
- Scapy Fuzz实现——S7协议从建连到“正常交流“(一)
转载:安全客 酝酿了“三秒钟“,准备理清逻辑写写我学习的心得,自认为和Siemens S7协议有过一段时间浅浅的“交流”,所以这过程中涉及到了自己整理的自认为有用的东西,涉及工具.脚本这般,发出来让大 ...
- float导致出现大面积空白
float导致出现大面积空白,解决方法: *{ padding: 0; margin: 0; overflow:hidden; }
- C#中富文本编辑器Simditor带图片上传的全部过程(MVC架构的项目)
描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看. 注:此项目是MVC架构的. 1.引用文件 项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示 ...
- python - json/pickle
# import json #将数据类型转换成字符串 # data = {"a":"123"} # a = json.dumps(data) # print(a ...
- ubuntu14.04 放开串口权限
可以用如下命令查看串口信息: ls -l /dev/ttyUSB*来查看相关的信息. 但是普通用户没有usb操作权限(函数open()打不开串口:refused),如果我们想在ROS程序里面打开串口, ...
- 基于Python的机器学习实战:Apriori
目录: 1.关联分析 2. Apriori 原理 3. 使用 Apriori 算法来发现频繁集 4.从频繁集中挖掘关联规则 5. 总结 1.关联分析 返回目录 关联分析是一种在大规模数据集中寻找有趣 ...