DirFile.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764
  1. using System;
  2. using System.Text;
  3. using System.IO;
  4. namespace Ant.Service.Utilities
  5. {
  6. /// <summary>
  7. /// 文件操作夹
  8. /// </summary>
  9. public static class DirFile
  10. {
  11. #region 检测指定目录是否存在
  12. /// <summary>
  13. /// 检测指定目录是否存在
  14. /// </summary>
  15. /// <param name="directoryPath">目录的绝对路径</param>
  16. /// <returns></returns>
  17. public static bool IsExistDirectory(string directoryPath)
  18. {
  19. return Directory.Exists(directoryPath);
  20. }
  21. #endregion
  22. #region 检测指定文件是否存在,如果存在返回true
  23. /// <summary>
  24. /// 检测指定文件是否存在,如果存在则返回true。
  25. /// </summary>
  26. /// <param name="filePath">文件的绝对路径</param>
  27. public static bool IsExistFile(string filePath)
  28. {
  29. return File.Exists(filePath);
  30. }
  31. #endregion
  32. #region 获取指定目录中的文件列表
  33. /// <summary>
  34. /// 获取指定目录中所有文件列表
  35. /// </summary>
  36. /// <param name="directoryPath">指定目录的绝对路径</param>
  37. public static string[] GetFileNames(string directoryPath)
  38. {
  39. //如果目录不存在,则抛出异常
  40. if (!IsExistDirectory(directoryPath))
  41. {
  42. throw new FileNotFoundException();
  43. }
  44. //获取文件列表
  45. return Directory.GetFiles(directoryPath);
  46. }
  47. #endregion
  48. #region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
  49. /// <summary>
  50. /// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
  51. /// </summary>
  52. /// <param name="directoryPath">指定目录的绝对路径</param>
  53. public static string[] GetDirectories(string directoryPath)
  54. {
  55. try
  56. {
  57. return Directory.GetDirectories(directoryPath);
  58. }
  59. catch (IOException ex)
  60. {
  61. throw ex;
  62. }
  63. }
  64. #endregion
  65. #region 获取指定目录及子目录中所有文件列表
  66. /// <summary>
  67. /// 获取指定目录及子目录中所有文件列表
  68. /// </summary>
  69. /// <param name="directoryPath">指定目录的绝对路径</param>
  70. /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  71. /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  72. /// <param name="isSearchChild">是否搜索子目录</param>
  73. public static string[] GetFileNames(string directoryPath, string searchPattern, bool isSearchChild)
  74. {
  75. //如果目录不存在,则抛出异常
  76. if (!IsExistDirectory(directoryPath))
  77. {
  78. throw new FileNotFoundException();
  79. }
  80. try
  81. {
  82. if (isSearchChild)
  83. {
  84. return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories);
  85. }
  86. else
  87. {
  88. return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
  89. }
  90. }
  91. catch (IOException ex)
  92. {
  93. throw ex;
  94. }
  95. }
  96. #endregion
  97. #region 检测指定目录是否为空
  98. /// <summary>
  99. /// 检测指定目录是否为空
  100. /// </summary>
  101. /// <param name="directoryPath">指定目录的绝对路径</param>
  102. public static bool IsEmptyDirectory(string directoryPath)
  103. {
  104. try
  105. {
  106. //判断是否存在文件
  107. string[] fileNames = GetFileNames(directoryPath);
  108. if (fileNames.Length > 0)
  109. {
  110. return false;
  111. }
  112. //判断是否存在文件夹
  113. string[] directoryNames = GetDirectories(directoryPath);
  114. if (directoryNames.Length > 0)
  115. {
  116. return false;
  117. }
  118. return true;
  119. }
  120. catch
  121. {
  122. //这里记录日志
  123. //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
  124. return true;
  125. }
  126. }
  127. #endregion
  128. #region 检测指定目录中是否存在指定的文件
  129. /// <summary>
  130. /// 检测指定目录中是否存在指定的文件,若要搜索子目录请使用重载方法.
  131. /// </summary>
  132. /// <param name="directoryPath">指定目录的绝对路径</param>
  133. /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  134. /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  135. public static bool Contains(string directoryPath, string searchPattern)
  136. {
  137. try
  138. {
  139. //获取指定的文件列表
  140. string[] fileNames = GetFileNames(directoryPath, searchPattern, false);
  141. //判断指定文件是否存在
  142. if (fileNames.Length == 0)
  143. {
  144. return false;
  145. }
  146. else
  147. {
  148. return true;
  149. }
  150. }
  151. catch (Exception ex)
  152. {
  153. throw new Exception(ex.Message);
  154. //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
  155. }
  156. }
  157. /// <summary>
  158. /// 检测指定目录中是否存在指定的文件
  159. /// </summary>
  160. /// <param name="directoryPath">指定目录的绝对路径</param>
  161. /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  162. /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  163. /// <param name="isSearchChild">是否搜索子目录</param>
  164. public static bool Contains(string directoryPath, string searchPattern, bool isSearchChild)
  165. {
  166. try
  167. {
  168. //获取指定的文件列表
  169. string[] fileNames = GetFileNames(directoryPath, searchPattern, true);
  170. //判断指定文件是否存在
  171. if (fileNames.Length == 0)
  172. {
  173. return false;
  174. }
  175. else
  176. {
  177. return true;
  178. }
  179. }
  180. catch (Exception ex)
  181. {
  182. throw new Exception(ex.Message);
  183. //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
  184. }
  185. }
  186. #endregion
  187. #region 创建目录
  188. /// <summary>
  189. /// 创建目录
  190. /// </summary>
  191. /// <param name="dir">要创建的目录路径包括目录名</param>
  192. public static void CreateDir(string dir)
  193. {
  194. if (dir.Length == 0) return;
  195. if (!Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir))
  196. Directory.CreateDirectory(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir);
  197. }
  198. #endregion
  199. #region 删除目录
  200. /// <summary>
  201. /// 删除目录
  202. /// </summary>
  203. /// <param name="dir">要删除的目录路径和名称</param>
  204. public static void DeleteDir(string dir)
  205. {
  206. if (dir.Length == 0) return;
  207. if (Directory.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir))
  208. Directory.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir);
  209. }
  210. #endregion
  211. #region 删除文件
  212. /// <summary>
  213. /// 删除文件
  214. /// </summary>
  215. /// <param name="file">要删除的文件路径和名称</param>
  216. public static void DeleteFile(string file)
  217. {
  218. if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file))
  219. File.Delete(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + file);
  220. }
  221. #endregion
  222. #region 创建文件
  223. /// <summary>
  224. /// 创建文件
  225. /// </summary>
  226. /// <param name="dir">带后缀的文件名</param>
  227. /// <param name="pagestr">文件内容</param>
  228. public static void CreateFile(string dir, string pagestr)
  229. {
  230. dir = dir.Replace("/", "\\");
  231. if (dir.IndexOf("\\") > -1)
  232. CreateDir(dir.Substring(0, dir.LastIndexOf("\\")));
  233. System.IO.StreamWriter sw = new System.IO.StreamWriter(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir, false, System.Text.Encoding.GetEncoding("GB2312"));
  234. sw.Write(pagestr);
  235. sw.Close();
  236. }
  237. #endregion
  238. #region 移动文件(剪贴--粘贴)
  239. /// <summary>
  240. /// 移动文件(剪贴--粘贴)
  241. /// </summary>
  242. /// <param name="dir1">要移动的文件的路径及全名(包括后缀)</param>
  243. /// <param name="dir2">文件移动到新的位置,并指定新的文件名</param>
  244. public static void MoveFile(string dir1, string dir2)
  245. {
  246. dir1 = dir1.Replace("/", "\\");
  247. dir2 = dir2.Replace("/", "\\");
  248. if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1))
  249. File.Move(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2);
  250. }
  251. #endregion
  252. #region 复制文件
  253. /// <summary>
  254. /// 复制文件
  255. /// </summary>
  256. /// <param name="dir1">要复制的文件的路径已经全名(包括后缀)</param>
  257. /// <param name="dir2">目标位置,并指定新的文件名</param>
  258. public static void CopyFile(string dir1, string dir2)
  259. {
  260. dir1 = dir1.Replace("/", "\\");
  261. dir2 = dir2.Replace("/", "\\");
  262. if (File.Exists(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1))
  263. {
  264. File.Copy(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir1, System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\\" + dir2, true);
  265. }
  266. }
  267. #endregion
  268. #region 根据时间得到目录名 / 格式:yyyyMMdd 或者 HHmmssff
  269. /// <summary>
  270. /// 根据时间得到目录名yyyyMMdd
  271. /// </summary>
  272. /// <returns></returns>
  273. public static string GetDateDir()
  274. {
  275. return DateTime.Now.ToString("yyyyMMdd");
  276. }
  277. /// <summary>
  278. /// 根据时间得到文件名HHmmssff
  279. /// </summary>
  280. /// <returns></returns>
  281. public static string GetDateFile()
  282. {
  283. return DateTime.Now.ToString("HHmmssff");
  284. }
  285. #endregion
  286. #region 复制文件夹
  287. /// <summary>
  288. /// 复制文件夹(递归)
  289. /// </summary>
  290. /// <param name="varFromDirectory">源文件夹路径</param>
  291. /// <param name="varToDirectory">目标文件夹路径</param>
  292. public static void CopyFolder(string varFromDirectory, string varToDirectory)
  293. {
  294. Directory.CreateDirectory(varToDirectory);
  295. if (!Directory.Exists(varFromDirectory)) return;
  296. string[] directories = Directory.GetDirectories(varFromDirectory);
  297. if (directories.Length > 0)
  298. {
  299. foreach (string d in directories)
  300. {
  301. CopyFolder(d, varToDirectory + d.Substring(d.LastIndexOf("\\")));
  302. }
  303. }
  304. string[] files = Directory.GetFiles(varFromDirectory);
  305. if (files.Length > 0)
  306. {
  307. foreach (string s in files)
  308. {
  309. File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\\")), true);
  310. }
  311. }
  312. }
  313. #endregion
  314. #region 检查文件,如果文件不存在则创建
  315. /// <summary>
  316. /// 检查文件,如果文件不存在则创建
  317. /// </summary>
  318. /// <param name="FilePath">路径,包括文件名</param>
  319. public static void ExistsFile(string FilePath)
  320. {
  321. //if(!File.Exists(FilePath))
  322. //File.Create(FilePath);
  323. //以上写法会报错,详细解释请看下文.........
  324. if (!File.Exists(FilePath))
  325. {
  326. FileStream fs = File.Create(FilePath);
  327. fs.Close();
  328. }
  329. }
  330. #endregion
  331. #region 删除指定文件夹对应其他文件夹里的文件
  332. /// <summary>
  333. /// 删除指定文件夹对应其他文件夹里的文件
  334. /// </summary>
  335. /// <param name="varFromDirectory">指定文件夹路径</param>
  336. /// <param name="varToDirectory">对应其他文件夹路径</param>
  337. public static void DeleteFolderFiles(string varFromDirectory, string varToDirectory)
  338. {
  339. Directory.CreateDirectory(varToDirectory);
  340. if (!Directory.Exists(varFromDirectory)) return;
  341. string[] directories = Directory.GetDirectories(varFromDirectory);
  342. if (directories.Length > 0)
  343. {
  344. foreach (string d in directories)
  345. {
  346. DeleteFolderFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\\")));
  347. }
  348. }
  349. string[] files = Directory.GetFiles(varFromDirectory);
  350. if (files.Length > 0)
  351. {
  352. foreach (string s in files)
  353. {
  354. File.Delete(varToDirectory + s.Substring(s.LastIndexOf("\\")));
  355. }
  356. }
  357. }
  358. #endregion
  359. #region 从文件的绝对路径中获取文件名( 包含扩展名 )
  360. /// <summary>
  361. /// 从文件的绝对路径中获取文件名( 包含扩展名 )
  362. /// </summary>
  363. /// <param name="filePath">文件的绝对路径</param>
  364. public static string GetFileName(string filePath)
  365. {
  366. //获取文件的名称
  367. FileInfo fi = new FileInfo(filePath);
  368. return fi.Name;
  369. }
  370. #endregion
  371. /// <summary>
  372. /// 复制文件参考方法,页面中引用
  373. /// </summary>
  374. /// <param name="cDir">新路径</param>
  375. /// <param name="TempId">模板引擎替换编号</param>
  376. public static void CopyFiles(string cDir, string TempId)
  377. {
  378. //if (Directory.Exists(Request.PhysicalApplicationPath + "\\Controls"))
  379. //{
  380. // string TempStr = string.Empty;
  381. // StreamWriter sw;
  382. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Default.aspx"))
  383. // {
  384. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Default.aspx");
  385. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  386. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Default.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  387. // sw.Write(TempStr);
  388. // sw.Close();
  389. // }
  390. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Column.aspx"))
  391. // {
  392. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Column.aspx");
  393. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  394. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\List.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  395. // sw.Write(TempStr);
  396. // sw.Close();
  397. // }
  398. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Content.aspx"))
  399. // {
  400. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Content.aspx");
  401. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  402. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\View.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  403. // sw.Write(TempStr);
  404. // sw.Close();
  405. // }
  406. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\MoreDiss.aspx"))
  407. // {
  408. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\MoreDiss.aspx");
  409. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  410. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\DissList.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  411. // sw.Write(TempStr);
  412. // sw.Close();
  413. // }
  414. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\ShowDiss.aspx"))
  415. // {
  416. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\ShowDiss.aspx");
  417. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  418. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Diss.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  419. // sw.Write(TempStr);
  420. // sw.Close();
  421. // }
  422. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Review.aspx"))
  423. // {
  424. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Review.aspx");
  425. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  426. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Review.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  427. // sw.Write(TempStr);
  428. // sw.Close();
  429. // }
  430. // if (File.Exists(Request.PhysicalApplicationPath + "\\Controls\\Search.aspx"))
  431. // {
  432. // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\\Controls\\Search.aspx");
  433. // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
  434. // sw = new StreamWriter(Request.PhysicalApplicationPath + "\\" + cDir + "\\Search.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
  435. // sw.Write(TempStr);
  436. // sw.Close();
  437. // }
  438. //}
  439. }
  440. #region 创建一个目录
  441. /// <summary>
  442. /// 创建一个目录
  443. /// </summary>
  444. /// <param name="directoryPath">目录的绝对路径</param>
  445. public static void CreateDirectory(string directoryPath)
  446. {
  447. //如果目录不存在则创建该目录
  448. if (!IsExistDirectory(directoryPath))
  449. {
  450. Directory.CreateDirectory(directoryPath);
  451. }
  452. }
  453. #endregion
  454. #region 创建一个文件
  455. /// <summary>
  456. /// 创建一个文件。
  457. /// </summary>
  458. /// <param name="filePath">文件的绝对路径</param>
  459. public static void CreateFile(string filePath)
  460. {
  461. try
  462. {
  463. //如果文件不存在则创建该文件
  464. if (!IsExistFile(filePath))
  465. {
  466. //创建一个FileInfo对象
  467. FileInfo file = new FileInfo(filePath);
  468. //创建文件
  469. FileStream fs = file.Create();
  470. //关闭文件流
  471. fs.Close();
  472. }
  473. }
  474. catch (Exception ex)
  475. {
  476. //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
  477. throw ex;
  478. }
  479. }
  480. /// <summary>
  481. /// 创建一个文件,并将字节流写入文件。
  482. /// </summary>
  483. /// <param name="filePath">文件的绝对路径</param>
  484. /// <param name="buffer">二进制流数据</param>
  485. public static void CreateFile(string filePath, byte[] buffer)
  486. {
  487. try
  488. {
  489. //如果文件不存在则创建该文件
  490. if (!IsExistFile(filePath))
  491. {
  492. //创建一个FileInfo对象
  493. FileInfo file = new FileInfo(filePath);
  494. //创建文件
  495. FileStream fs = file.Create();
  496. //写入二进制流
  497. fs.Write(buffer, 0, buffer.Length);
  498. //关闭文件流
  499. fs.Close();
  500. }
  501. }
  502. catch (Exception ex)
  503. {
  504. //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
  505. throw ex;
  506. }
  507. }
  508. #endregion
  509. #region 获取文本文件的行数
  510. /// <summary>
  511. /// 获取文本文件的行数
  512. /// </summary>
  513. /// <param name="filePath">文件的绝对路径</param>
  514. public static int GetLineCount(string filePath)
  515. {
  516. //将文本文件的各行读到一个字符串数组中
  517. string[] rows = File.ReadAllLines(filePath);
  518. //返回行数
  519. return rows.Length;
  520. }
  521. #endregion
  522. #region 获取一个文件的长度
  523. /// <summary>
  524. /// 获取一个文件的长度,单位为Byte
  525. /// </summary>
  526. /// <param name="filePath">文件的绝对路径</param>
  527. public static int GetFileSize(string filePath)
  528. {
  529. //创建一个文件对象
  530. FileInfo fi = new FileInfo(filePath);
  531. //获取文件的大小
  532. return (int)fi.Length;
  533. }
  534. #endregion
  535. #region 获取指定目录中的子目录列表
  536. /// <summary>
  537. /// 获取指定目录及子目录中所有子目录列表
  538. /// </summary>
  539. /// <param name="directoryPath">指定目录的绝对路径</param>
  540. /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
  541. /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
  542. /// <param name="isSearchChild">是否搜索子目录</param>
  543. public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild)
  544. {
  545. try
  546. {
  547. if (isSearchChild)
  548. {
  549. return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.AllDirectories);
  550. }
  551. else
  552. {
  553. return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
  554. }
  555. }
  556. catch (IOException ex)
  557. {
  558. throw ex;
  559. }
  560. }
  561. #endregion
  562. #region 向文本文件写入内容
  563. /// <summary>
  564. /// 向文本文件中写入内容
  565. /// </summary>
  566. /// <param name="filePath">文件的绝对路径</param>
  567. /// <param name="text">写入的内容</param>
  568. /// <param name="encoding">编码</param>
  569. public static void WriteText(string filePath, string text, Encoding encoding)
  570. {
  571. //向文件写入内容
  572. File.WriteAllText(filePath, text, encoding);
  573. }
  574. #endregion
  575. #region 向文本文件的尾部追加内容
  576. /// <summary>
  577. /// 向文本文件的尾部追加内容
  578. /// </summary>
  579. /// <param name="filePath">文件的绝对路径</param>
  580. /// <param name="content">写入的内容</param>
  581. public static void AppendText(string filePath, string content)
  582. {
  583. File.AppendAllText(filePath, content);
  584. }
  585. #endregion
  586. #region 将现有文件的内容复制到新文件中
  587. /// <summary>
  588. /// 将源文件的内容复制到目标文件中
  589. /// </summary>
  590. /// <param name="sourceFilePath">源文件的绝对路径</param>
  591. /// <param name="destFilePath">目标文件的绝对路径</param>
  592. public static void Copy(string sourceFilePath, string destFilePath)
  593. {
  594. File.Copy(sourceFilePath, destFilePath, true);
  595. }
  596. #endregion
  597. #region 将文件移动到指定目录
  598. /// <summary>
  599. /// 将文件移动到指定目录
  600. /// </summary>
  601. /// <param name="sourceFilePath">需要移动的源文件的绝对路径</param>
  602. /// <param name="descDirectoryPath">移动到的目录的绝对路径</param>
  603. public static void Move(string sourceFilePath, string descDirectoryPath)
  604. {
  605. //获取源文件的名称
  606. string sourceFileName = GetFileName(sourceFilePath);
  607. if (IsExistDirectory(descDirectoryPath))
  608. {
  609. //如果目标中存在同名文件,则删除
  610. if (IsExistFile(descDirectoryPath + "\\" + sourceFileName))
  611. {
  612. DeleteFile(descDirectoryPath + "\\" + sourceFileName);
  613. }
  614. //将文件移动到指定目录
  615. File.Move(sourceFilePath, descDirectoryPath + "\\" + sourceFileName);
  616. }
  617. }
  618. #endregion
  619. #region 从文件的绝对路径中获取文件名( 不包含扩展名 )
  620. /// <summary>
  621. /// 从文件的绝对路径中获取文件名( 不包含扩展名 )
  622. /// </summary>
  623. /// <param name="filePath">文件的绝对路径</param>
  624. public static string GetFileNameNoExtension(string filePath)
  625. {
  626. //获取文件的名称
  627. FileInfo fi = new FileInfo(filePath);
  628. return fi.Name.Split('.')[0];
  629. }
  630. #endregion
  631. #region 从文件的绝对路径中获取扩展名
  632. /// <summary>
  633. /// 从文件的绝对路径中获取扩展名
  634. /// </summary>
  635. /// <param name="filePath">文件的绝对路径</param>
  636. public static string GetExtension(string filePath)
  637. {
  638. //获取文件的名称
  639. FileInfo fi = new FileInfo(filePath);
  640. return fi.Extension;
  641. }
  642. #endregion
  643. #region 清空指定目录
  644. /// <summary>
  645. /// 清空指定目录下所有文件及子目录,但该目录依然保存.
  646. /// </summary>
  647. /// <param name="directoryPath">指定目录的绝对路径</param>
  648. public static void ClearDirectory(string directoryPath)
  649. {
  650. if (IsExistDirectory(directoryPath))
  651. {
  652. //删除目录中所有的文件
  653. string[] fileNames = GetFileNames(directoryPath);
  654. for (int i = 0; i < fileNames.Length; i++)
  655. {
  656. DeleteFile(fileNames[i]);
  657. }
  658. //删除目录中所有的子目录
  659. string[] directoryNames = GetDirectories(directoryPath);
  660. for (int i = 0; i < directoryNames.Length; i++)
  661. {
  662. DeleteDirectory(directoryNames[i]);
  663. }
  664. }
  665. }
  666. #endregion
  667. #region 清空文件内容
  668. /// <summary>
  669. /// 清空文件内容
  670. /// </summary>
  671. /// <param name="filePath">文件的绝对路径</param>
  672. public static void ClearFile(string filePath)
  673. {
  674. //删除文件
  675. File.Delete(filePath);
  676. //重新创建该文件
  677. CreateFile(filePath);
  678. }
  679. #endregion
  680. #region 删除指定目录
  681. /// <summary>
  682. /// 删除指定目录及其所有子目录
  683. /// </summary>
  684. /// <param name="directoryPath">指定目录的绝对路径</param>
  685. public static void DeleteDirectory(string directoryPath)
  686. {
  687. if (IsExistDirectory(directoryPath))
  688. {
  689. Directory.Delete(directoryPath, true);
  690. }
  691. }
  692. #endregion
  693. }
  694. }