C# 有关文件处理
一、移动文件夹内容,含子文件 参照:http://www.ayjs.net/post/300.html
/// <summary> /// 移动文件夹内容 /// </summary> /// <param name="source">源</param> /// <param name="target">目标</param> public static void MoveDirectory(string source, string target) { var sourcePath = source.TrimEnd('\\', ' '); var targetPath = target.TrimEnd('\\', ' '); var files = Directory.EnumerateFiles(sourcePath, "*", SearchOption.AllDirectories) .GroupBy(s => Path.GetDirectoryName(s)); foreach (var folder in files) { var targetFolder = folder.Key.Replace(sourcePath, targetPath); Directory.CreateDirectory(targetFolder); foreach (var file in folder) { var targetFile = Path.Combine(targetFolder, Path.GetFileName(file)); if (File.Exists(targetFile)) File.Delete(targetFile); File.Move(file, targetFile); } } Directory.Delete(source, true); }
二、文件和文件夹类DirectoryInfo、FileInfo 参照:https://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html
C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder.Name); //遍历文件 foreach(FileInfo NextFile in TheFolder.GetFiles()) this.listBox2.Items.Add(NextFile.Name); =================================================================== 如何获取指定目录包含的文件和子目录 1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找; 2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找; 3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找; 如何获取指定文件的基本信息; FileInfo.Exists:获取指定文件是否存在; FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名; FileInfo.FullName:获取文件的全限定名称(完整路径); FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo; FileInfo.DirectoryName:获取文件所在目录的路径(完整路径); FileInfo.Length:获取文件的大小(字节数); FileInfo.IsReadOnly:获取文件是否只读; FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合 FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;
三、获取文件路径信息
//获取当前运行程序的目录 string fileDir = Environment.CurrentDirectory; Console.WriteLine("当前程序目录:"+fileDir); //一个文件目录 string filePath = "C:\\JiYF\\BenXH\\BenXHCMS.xml"; Console.WriteLine("该文件的目录:"+filePath); string str = "获取文件的全路径:" + Path.GetFullPath(filePath); //-->C:\JiYF\BenXH\BenXHCMS.xml Console.WriteLine(str); str = "获取文件所在的目录:" + Path.GetDirectoryName(filePath); //-->C:\JiYF\BenXH Console.WriteLine(str); str = "获取文件的名称含有后缀:" + Path.GetFileName(filePath); //-->BenXHCMS.xml Console.WriteLine(str); str = "获取文件的名称没有后缀:" + Path.GetFileNameWithoutExtension(filePath); //-->BenXHCMS Console.WriteLine(str); str = "获取路径的后缀扩展名称:" + Path.GetExtension(filePath); //-->.xml Console.WriteLine(str); str = "获取路径的根目录:" + Path.GetPathRoot(filePath); //-->C:\ Console.WriteLine(str);