文件夾
創建文件夾
//如果文件夾路徑不存在則創建文件夾 if (!Directory.Exists(path)) Directory.CreateDirectory(path);
遞歸創建文件夾

public void createdir(string fullpath) { if (!File.Exists(fullpath)) { string dirpath = fullpath.Substring(0, fullpath.LastIndexOf('\\')); //string[] pathes = dirpath.Split('\\'); string[] pathes = fullpath.Split('\\'); if (pathes.Length > 1) { string path = pathes[0]; for (int i = 1; i < pathes.Length; i++) { path += "\\" + pathes[i]; //如果文件夾路徑不存在則創建文件夾 if (!Directory.Exists(path)) Directory.CreateDirectory(path); } } } }
刪除整個文件夾
Directory.Delete(path, true)
獲取目錄下的文件(夾)
var list = new string []{ }; string path = @"D:\公司SVN"; //獲取路徑下所有文件 list = Directory.GetFiles(path); //獲取路徑下所有文件夾 list = Directory.GetDirectories(path); //獲取路徑下所有文件+文件夾 list = Directory.GetFileSystemEntries(path); //獲取路徑下所有文件(包含子集文件) list = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); //獲取路徑下所有文件夾(包含子集文件夾) list = Directory.GetDirectories(path, "*.*", SearchOption.AllDirectories); //獲取路徑下所有文件+文件夾(包含子集文件+子集文件夾) list = Directory.GetFileSystemEntries(path, "*.*", SearchOption.AllDirectories);
文件
獲取文件全路徑、目錄、擴展名、文件名稱
class Program { static void Main(string[] args) { //獲取當前運行程序的目錄 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); Console.ReadKey(); } }
創建文件
//path是完整路徑,要包含文件的后綴名 string path = @"C:\1.txt"; //判斷文件是否存在,不存在就創建 if (!File.Exists(path)) { //創建一個 UTF-8 編碼text文件 File.CreateText(path); //創建一個文件 //File.Create(path); }
寫入文件
using System.IO; namespace ConsoleApp2 { class Program { static void Main(string[] args) { //寫入文本,不是追加,是清空在寫入 string path = @"C:\1.txt"; string[] lines = { "First line", "Second line", "Third line" }; File.WriteAllLines(path, lines); File.WriteAllText(path, "AAAAAAAAAAAAAAAA"); //追加寫入文本 using (StreamWriter sw = new StreamWriter(path, true)) { sw.WriteLine("Fourth line"); } using (StreamWriter sw = File.AppendText(path)) { sw.Write(12345); } } } }
文件流讀寫
public Stream FileToStream(string fileFullName) { using (FileStream fs = new FileStream(fileFullName, FileMode.OpenOrCreate)) { byte[] bytes = new byte[fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); return new MemoryStream(bytes); } } public void WriteFile(string fileFullName, byte[] bytes) { if (bytes == null) return; using (FileStream fs = new FileStream(fileFullName, FileMode.OpenOrCreate)) { fs.Write(bytes, 0, bytes.Length); fs.Close(); } #region 第二種 /* using (MemoryStream m = new MemoryStream(bytes)) using (FileStream fs = new FileStream(fileFullName, FileMode.OpenOrCreate)) { m.WriteTo(fs); } */ #endregion }
Stream 和 byte[] 互轉
/// <summary> /// 將 Stream 轉成 byte[] /// </summary> /// <param name="bytes"></param> /// <returns></returns> public byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); stream.Flush(); stream.Close(); return bytes; } /// <summary> /// 將 byte[] 轉成 Stream /// </summary> /// <param name="bytes"></param> /// <returns></returns> public Stream BytesToStream(byte[] bytes) { return new MemoryStream(bytes); }