LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[点晴永久免费OA]C#文件操作大全,操作文件有这些都够了

admin
2025年12月16日 16:4 本文热度 557

操作文件和文件夹是程序开发中常用,无论是C/S和B/S都会存在操作文件的需求,比如上传新闻图片按日期创建文件夹,用文本文件存储用户信息等。下面介绍28种文件操作的方法,希望对大家的开发有所帮助

1.创建文件夹

//using System.IO;Directory.CreateDirectory(path);

2.创建文件

//using System.IO;File.Create(path);

3.删除文件

//using System.IO;File.Delete(path);

4.删除文件夹

//using System.IO;Directory.Delete(path);

5.删除一个目录下所有的文件夹

//using System.IO;foreach (string dirStr in Directory.GetDirectories(path)){ DirectoryInfo dir = new DirectoryInfo(dirStr); ArrayList folders=new ArrayList(); FileSystemInfo[] fileArr = dir.GetFileSystemInfos();for (int i = 0; i < folders.Count; i++) {  FileInfo f = folders[i] as FileInfo;if (f == null)  {   DirectoryInfo d = folders[i] as DirectoryInfo;   d.Delete();  } }}

6.清空文件夹

//using System.IO;Directory.Delete(path,true);Directory.CreateDirectory(path);

7.读取文件

//using System.IO;StreamReader s = File.OpenText(path1);string str2 = null;while ((str2 = s.ReadLine()) != null){ }s.Close();

8.写入文件

//using System.IO;FileInfo f = new FileInfo(str);StreamWriter w = f.CreateText();w.WriteLine(ReadOnlySpan);w.Close();

9.写入随机文件

//using System.IO;byte[] dataArray = new byte[100000];//new Random().NextBytes(dataArray);using(FileStream FileStream = new FileStream(path, FileMode.Create)){// Write the data to the file, byte by byte.for(int i = 0; i < dataArray.Length; i++){  FileStream.WriteByte(dataArray[i]); }// Set the stream position to the beginning of the file. FileStream.Seek(0, SeekOrigin.Begin);// Read and verify the data.for(int i = 0; i < FileStream.Length; i++){if(dataArray[i] != FileStream.ReadByte()){   //写入数据错误return;  } }//"数据流"+FileStream.Name+"已验证"}

10.读取文件属性

//using System.IO;FileInfo f = new FileInfo(path);//f.CreationTime,f.FullNameif((f.Attributes & FileAttributes.ReadOnly) != 0){ path2}else{ path3}

11.写入属性

//using System.IO;FileInfo f = new FileInfo(path);//设置只读f.Attributes = myFile.Attributes | FileAttributes.ReadOnly;//设置可写f.Attributes = myFile.Attributes & ~FileAttributes.ReadOnly;
12.枚举一个文件夹中的所有文件夹//using System.IO;foreach (string path2 in Directory.GetDirectories(path)){ path3}

13.复制文件夹

string path = (path2.LastIndexOf("\") == path2.Length - 1) ? path2 : path2+"\";string parent = Path.GetDirectoryName(path);Directory.CreateDirectory(path + Path.GetFileName(path));DirectoryInfo dir = new DirectoryInfo((path.LastIndexOf("\") ==path.Length - 1) ? path1 : path1 + "\");FileSystemInfo[] fileArr = dir.GetFileSystemInfos();Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());while (Folders.Count>0){                    FileSystemInfo tmp = Folders.Dequeue();                    FileInfo f = tmp as FileInfo;if (f == null)                    {                        DirectoryInfo d = tmp as DirectoryInfo;                        Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\", path));foreach (FileSystemInfo fi in d.GetFileSystemInfos())                        {                            Folders.Enqueue(fi);                        }                    }else                    {                        f.CopyTo(f.FullName.Replace(parent, path));                    }}

14.复制目录下所有的文件夹到另一个文件夹下

DirectoryInfo d = new DirectoryInfo(path);foreach (DirectoryInfo dirs in d.GetDirectories()){    Queue<FileSystemInfo> al = new Queue<FileSystemInfo>(dirs.GetFileSystemInfos());while (al.Count > 0)    {        FileSystemInfo temp = al.Dequeue();        FileInfo file = temp as FileInfo;if (file == null)        {            DirectoryInfo directory = temp as DirectoryInfo;            Directory.CreateDirectory(path + directory.Name);foreach (FileSystemInfo fsi in directory.GetFileSystemInfos())                al.Enqueue(fsi);        }else            File.Copy(file.FullName, path + file.Name);    }}

15.移动文件夹

                string filename = Path.GetFileName(path);                string path=(path2.LastIndexOf("\") == path2.Length - 1) ? path2 : path2 + "\";if (Path.GetPathRoot(path) == Path.GetPathRoot(path2))                    Directory.Move(path, path + filename);else                {                    string parent = Path.GetDirectoryName(path);                    Directory.CreateDirectory(path + Path.GetFileName(path1));                    DirectoryInfo dir = new DirectoryInfo((path.LastIndexOf("\") == path1.Length - 1) ? path1 : path1 + "\");                    FileSystemInfo[] fileArr = dir.GetFileSystemInfos();                    Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());while (Folders.Count > 0)                    {                        FileSystemInfo tmp = Folders.Dequeue();                        FileInfo f = tmp as FileInfo;if (f == null)                        {                            DirectoryInfo d = tmp as DirectoryInfo;                            DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\", path));                            dpath.Create();foreach (FileSystemInfo fi in d.GetFileSystemInfos())                            {                                Folders.Enqueue(fi);                            }                        }else                        {                            f.MoveTo(f.FullName.Replace(parent, path));                        }                    }                    Directory.Delete(path, true);                }

16.移动目录下所有的文件夹到另一个目录下

string filename = Path.GetFileName(path);if (Path.GetPathRoot(path) == Path.GetPathRoot(path2))foreach (string dir in Directory.GetDirectories(path1))                        Directory.Move(dir, Path.Combine(path2,filename));else                {foreach (string dir2 in Directory.GetDirectories(path1))                    {                        string parent = Path.GetDirectoryName(dir2);                        Directory.CreateDirectory(Path.Combine(path2, Path.GetFileName(dir2)));                        string dir = (dir2.LastIndexOf("\") == dir2.Length - 1) ? dir2 : dir2 + "\";                        DirectoryInfo dirdir = new DirectoryInfo(dir);                        FileSystemInfo[] fileArr = dirdir.GetFileSystemInfos();                        Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dirdir.GetFileSystemInfos());while (Folders.Count > 0)                        {                            FileSystemInfo tmp = Folders.Dequeue();                            FileInfo f = tmp as FileInfo;if (f == null)                            {                                DirectoryInfo d = tmp as DirectoryInfo;                                DirectoryInfo dpath = new DirectoryInfo(d.FullName.Replace((parent.LastIndexOf("\") == parent.Length - 1) ? parent : parent + "\", path2));                                dpath.Create();foreach (FileSystemInfo fi in d.GetFileSystemInfos())                                {                                    Folders.Enqueue(fi);                                }                            }else                            {                                f.MoveTo(f.FullName.Replace(parent, path2));                            }                        }                        dirdir.Delete(true);                    }                }

18.复制文件

//using System.IO;File.Copy(path1,path2);

19.复制一个文件夹下所有的文件到另一个目录

//using System.IO;foreach (string fileStr in Directory.GetFiles(path1)) File.Copy((path1.LastIndexOf("\") == path1.Length - 1) ? path1 +Path.GetFileName(fileStr): path1 + "\"+Path.GetFileName(fileStr),(path2.LastIndexOf("\\") == path2.Length - 1) ? path2 +Path.GetFileName(fileStr): path2 + "\"+Path.GetFileName(fileStr));

20.提取扩展名

//using System.IO;string path2=Path.GetExtension(path1);

21.提取文件名

//using System.IO;string path2=Path.GetFileName(path1);

22.提取文件路径

//using System.IO;string path2=Path.GetDirectoryName(path1);

23.替换扩展名

//using System.IO;File.ChangeExtension(path1,path2);

24.追加路径

//using System.IO;string path3=Path.Combine(path1,path2);

25.移动文件

//using System.IO;File.Move(path1,path2+"\"+file.getname(path1));

26.移动一个文件夹下所有文件到另一个目录

foreach (string fileStr in Directory.GetFiles(path1)) File.Move((path1.LastIndexOf("\") == path1.Length - 1) ? path1 +Path.GetFileName(fileStr): path1 + "\"+Path.GetFileName(fileStr),(path2.LastIndexOf("\\") == path2.Length - 1) ? path2 +Path.GetFileName(fileStr): path2 + "\"+Path.GetFileName(fileStr));

27.指定目录下搜索文件

string fileName=path1;string dirName=path2; DirectoryInfo   dirc=new   DirectoryInfo(dirName);foreach(FileInfo   file   in   dirc.GetFiles()) {if(file.Name.IndexOf(fileName)>-1)return file.FullName;  }foreach(DirectoryInfo   dir   in   dirc.GetDirectories())   { return   GetFile(fileName,dir.FullName);   }return"找不到指定的文件" }

28.获得当前路径

string path=Environment.CurrentDirectory;


该文章在 2025/12/17 9:16:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved