经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
【转载】ASP.NET工具类:文件夹目录Directory操作工具类
来源:cnblogs  作者:江湖逍遥  时间:2019/3/25 9:25:09  对本文有异议

在ASP.NET开发网站的过程中,有时候会涉及到文件夹相关操作,如判断文件夹目录是否存在、删除文件夹目录、创建文件、删除文件、复制文件夹等等。这一批有关文件目录的操作可以通过Directory类、File类的方法进行,因此为了我们自己操作的方便,可以封装出一个工具类,专门用于操作文件目录以及文件目录里面的文件。

Directory类:MSDN上的定义为目录类,开用于创建,移动和枚举目录和子目录的静态方法。这个类不能被继承。

File类:提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建fileStream文件流对象。

备注:原文转载自ASP.NET工具类:文件夹目录Directory操作工具类_IT技术小趣屋

封装一个目录操作工具类DirFileHelper类,该类除了包含常规的操作外,还包含文件复制、文件移动、计算文本文件行数等公用方法,具体的工具类实现如下:

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

 

原文链接:http://www.cnblogs.com/xu-yi/p/10577602.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号