C#复制或删除文件夹(及文件夹下所有子文件夹和文件)、获取文件所在文件夹、二进制读取文件相关
2010-11-18 23:48
656 查看
代码很简单,就不做解释了,直接拷贝可用。
更多示例代码,可以访问微软示例代码(Samples from microsoft)All-In-One Code:http://1code.codeplex.com
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ZipOneCode.FileProvider { public class FileHelper { /// <summary> /// 复制文件夹(及文件夹下所有子文件夹和文件) /// </summary> /// <param name="sourcePath">待复制的文件夹路径</param> /// <param name="destinationPath">目标路径</param> public static void CopyDirectory(String sourcePath, String destinationPath) { DirectoryInfo info = new DirectoryInfo(sourcePath); Directory.CreateDirectory(destinationPath); foreach (FileSystemInfo fsi in info.GetFileSystemInfos()) { String destName = Path.Combine(destinationPath, fsi.Name); if (fsi is System.IO.FileInfo) //如果是文件,复制文件 File.Copy(fsi.FullName, destName); else //如果是文件夹,新建文件夹,递归 { Directory.CreateDirectory(destName); CopyDirectory(fsi.FullName, destName); } } } /// <summary> /// 删除文件夹(及文件夹下所有子文件夹和文件) /// </summary> /// <param name="directoryPath"></param> public static void DeleteFolder(string directoryPath) { foreach (string d in Directory.GetFileSystemEntries(directoryPath)) { if (File.Exists(d)) { FileInfo fi = new FileInfo(d); if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) fi.Attributes = FileAttributes.Normal; File.Delete(d); //删除文件 } else DeleteFolder(d); //删除文件夹 } Directory.Delete(directoryPath); //删除空文件夹 } /// <summary> /// 获取带文件路径的文件名(如“D:\AML\JHG\abc.txt”,获取abc.txt) /// </summary> /// <param name="filePath">文件名</param> /// <returns></returns> public static string GetFileName(string filePath) { //传进来的 filePath 应 filePath.TrimEnd('\\') //该方法也可以用split('\\'),但是建议用 LastIndexOf int dirNameIndex = filePath.LastIndexOf("\\"); if (dirNameIndex != -1) return filePath.Substring(dirNameIndex + 1); else return "error path"; } /// <summary> /// 以二进制流方式读取文件 /// </summary> /// <param name="filePath">文件全路径(如:D:\AML\JHG\abc.txt)</param> /// <returns></returns> public static byte[] ReadFileByte(string filePath) { Stream fileStream = File.OpenRead(filePath); byte[] arrBytes = new byte[fileStream.Length]; int offset = 0; while (offset < arrBytes.LongLength) { offset += fileStream.Read(arrBytes, offset, arrBytes.Length - offset); } fileStream.Close(); return arrBytes; } } }
[/code]
[/code]
相关文章推荐
- C# 获取文件夹及其子文件夹下的所有文件
- C#获取文件夹中所有文件的文件名 修改文件名和删除文件
- Android 读取手机某个文件夹目录及子文件夹中所有的txt文件
- c#删除指定目录下所有内容:方法二--找到所有文件和子文件夹删除
- PHP目录,文件操作详谈(文件、文件夹的生成、复制、删除、读取)
- c#遍历一个文件夹下的所有文件包括子文件夹
- C#控制台基础 directory获取一个文件夹下所有文件的名字(不包含文件夹)
- C# 复制指定文件夹下的所有文件和文件夹
- C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名
- C# 复制文件,文件夹以及子文件夹文件
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- C#两种方式获取指定文件夹下所有子目录及文件(转载)
- C#遍历一个文件夹下的所有文件包括子文件夹
- C#获取文件夹下的所有文件的文件名
- C# 删除文件夹下的所有文件
- C#删除文件夹下所有的文件
- C++读取文件夹中所有文件的路径,包含子文件夹
- C#控制台基础 directory获取一个文件夹下所有文件及文件夹的全名
- Java新建目录、新建文件、删除文件、删除文件夹、删除文件夹里面的所有文件、复制整个文件夹内容
- C# 删除指定文件以及文件夹下的所有文件的方法