C# 中有关目录的操作,C# 中允许您使用各种目录和文件相关的类来操作目录和文件,比如
DirectoryInfo
类和
FileInfo
类。
DirectoryInfo 类
DirectoryInfo 类派生自 FileSystemInfo 类,其中提供了各种用于创建、移动、浏览目录和子目录的方法。需要注意的是,该类不能被继承。
下表列出了 DirectoryInfo 类中一些常用的属性:
属性 | 描述 |
---|---|
Attributes | 获取当前文件或目录的属性 |
CreationTime | 获取当前文件或目录的创建时间 |
Exists | 获取一个表示目录是否存在的布尔值 |
Extension | 获取表示文件存在的字符串 |
FullName | 获取目录或文件的完整路径 |
LastAccessTime | 获取当前文件或目录最后被访问的时间 |
Name | 获取该 DirectoryInfo 实例的名称 |
下表列出了 DirectoryInfo 类中一些常用的方法:
方法 | 描述 |
---|---|
public void Create() | 创建一个目录 |
public DirectoryInfo CreateSubdirectory(string path) | 在指定的路径上创建子目录,指定的路径可以是相对于 DirectoryInfo |
public override void Delete() | 如果为空的,则删除该 DirectoryInfo |
public DirectoryInfo[] GetDirectories() | 返回当前目录的子目录 |
public FileInfo[] GetFiles() | 从当前目录返回文件列表 |
完整的方法以及属性介绍,请查阅官方API
提示:赶紧点赞收藏起来吧!方便下次观看
FileInfo 类
FileInfo 类派生自 FileSystemInfo 类,其中提供了用于创建、复制、删除、移动、打开文件的属性和方法。与 DirectoryInfo 类相同,FileInfo 类也不能被继承。
下表列出了 FileInfo 类中一些常用的属性:
属性 | 描述 |
---|---|
Attributes | 获取当前文件的属性 |
CreationTime | 获取当前文件的创建时间 |
Directory | 获取文件所属目录的一个实例 |
Exists | 获取一个表示文件是否存在的布尔值 |
Extension | 获取表示文件存在的字符串 |
FullName | 获取文件的完整路径 |
LastAccessTime | 获取当前文件最后被访问的时间 |
LastWriteTime | 获取文件最后被写入的时间 |
Length | 获取当前文件的大小,以字节为单位 |
Name | 获取文件的名称 |
下表列出了 FileInfo 类中一些常用的方法:
方法 | 描述 |
---|---|
public StreamWriter AppendText() | 创建一个 StreamWriter,追加文本到由 FileInfo |
public FileStream Create() | 创建一个文件 |
public override void Delete() | 永久删除一个文件 |
public void MoveTo(string destFileName) | 移动一个指定的文件到一个新的位置,提供选项来指定新的文件名 |
public FileStream Open(FileMode mode) | 以指定的模式打开一个文件 |
public FileStream Open(FileMode mode,FileAccess access) | 以指定的模式,使用 read、write 或 read/write 访问,来打开一个文件 |
public FileStream Open(FileMode mode,FileAccess access,FileShare share) | 以指定的模式,使用 read、write 或 read/write 访问,以及指定的分享选项,来打开一个文件 |
public FileStream OpenRead() | 创建一个只读的 FileStream |
public FileStream OpenWrite() | 创建一个只写的 FileStream |
更详细的方法以及属性介绍,请查阅官方API
例子:使用 DirectoryInfo 类获取目录的信息。
using System;
using System.IO;
namespace c.biancheng.net
{
class Demo
{
static void Main(string[] args)
{
// 创建一个 DirectoryInfo 对象
DirectoryInfo mydir = new DirectoryInfo(@"f:\code");
// 获取目录中的文件以及它们的名称和大小
FileInfo[] f = mydir.GetFiles();
foreach (FileInfo file in f)
{
Console.WriteLine("文件名称:{0} 大小:{1}", file.Name, file.Length);
}
Console.ReadKey();
}
}
}
输出结果:
文件名称:demo.cs 大小:592
文件名称:demo.exe 大小:4096
文件名称:demo.txt 大小:54
文件名称:mydata 大小:30
文件名称:test.txt 大小:50
文件目录操作具体方法
- 相对路径转绝对路径
string fullfolder = HttpContext.Current.Server.MapPath(folder);
- 文件移动(改名)
File.Move(Server.MapPath("/a.txt"), Server.MapPath("/b.txt"));
- 文件复制
File.Copy(Server.MapPath("/a.txt"), Server.MapPath("/b.txt"), true);
- 文件是否存在
File.Exists(filefullname)
- 目录是否存在
Directory.Exists(fullfolder))
- 创建目录
Directory.CreateDirectory(fullfolder);
- 目录移动
Directory.Move
- 读取文本文件
StreamReader srd = File.OpenText(fullfilename);
srd.ReadToEnd();
srd.Close();
srd.Dispose();
- 写文件
StreamWriter swr = File.CreateText(Server.MapPath("test.txt"));
swr.Write("message");
swr.Close();
swr.Dispose();
10)删除文件
// 删除硬盘上的文件
if (File.Exists(filefullname))
{
File.Delete(filefullname);
}
11)目录遍历
public void ListFiles(string pathname)
{
// 所有目录与文件
string[] subDirs = Directory.GetDirectories(pathname);
string[] subFiles = Directory.GetFiles(pathname);
foreach (string subDir in subDirs)
{
ListFiles(subDir);
}
// 所有文件
foreach (string subFile in subFiles)
{
string filename = Path.GetFileName(subFile);
}
}
12)文件修改时间
FileInfo fi = new FileInfo(@"c:\test.txt");
DateTime writetime = fi.LastWriteTime;
13)从含路径的文件名中提取文件名
System.IO.Path.GetFileName(fullPath);//文件名
C#获取项目指定目录下文件的方法
public List<FileInfo> GetFiles() {
string path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory,"Files\\");
//获取项目物理路径
string[] fileType=new string[]{
"pdf\\","pps\\","xls\\"};
string[] directoryFiles = new string[] {
};
List<FileInfo> fileInfoList = new List<FileInfo>();
for (int f = 0; f < fileType.Count(); f++) {
path = path + fileType[f];
directoryFiles=System.IO.Directory.GetFiles(path);
for(int d=0;d<directoryFiles.Count();d++){
FileInfo fileInfo = new FileInfo(directoryFiles[d]);
fileInfoList.Add(fileInfo);
}
}
return fileInfoList;
}
转载:https://blog.csdn.net/m0_65636467/article/details/129106015
查看评论