zoukankan      html  css  js  c++  java
  • C# 常用的操作文件夹的方法

      1 #region 检测指定目录是否存在
      2 /// <summary>
      3 /// 检测指定目录是否存在
      4 /// </summary>
      5 /// <param name="directoryPath">目录的绝对路径</param>
      6 /// <returns>bool</returns>
      7 public static bool IsExistDirectory(string directoryPath)
      8 {
      9 return Directory.Exists(directoryPath);
     10 }
     11 #endregion
     12 
     13 #region 检测指定文件是否存在,如果存在返回true
     14 /// <summary>
     15 /// 检测指定文件是否存在,如果存在则返回true。
     16 /// </summary>
     17 /// <param name="filePath">文件的绝对路径</param> 
     18 public static bool IsExistFile(string filePath)
     19 {
     20 return File.Exists(filePath);
     21 }
     22 #endregion
     23 
     24 #region 获取指定目录中的文件列表
     25 /// <summary>
     26 /// 获取指定目录中所有文件列表
     27 /// </summary>
     28 /// <param name="directoryPath">指定目录的绝对路径</param> 
     29 public static string[] GetFileNames(string directoryPath)
     30 {
     31 //如果目录不存在,则抛出异常
     32 if (!IsExistDirectory(directoryPath))
     33 {
     34 throw new FileNotFoundException();
     35 }
     36 
     37 //获取文件列表
     38 return Directory.GetFiles(directoryPath);
     39 }
     40 #endregion
     41 
     42 #region 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
     43 /// <summary>
     44 /// 获取指定目录中所有子目录列表,若要搜索嵌套的子目录列表,请使用重载方法.
     45 /// </summary>
     46 /// <param name="directoryPath">指定目录的绝对路径</param> 
     47 public static string[] GetDirectories(string directoryPath)
     48 {
     49 try
     50 {
     51 return Directory.GetDirectories(directoryPath);
     52 }
     53 catch (IOException ex)
     54 {
     55 throw ex;
     56 }
     57 }
     58 #endregion
     59 
     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 
     76 try
     77 {
     78 if (isSearchChild)
     79 {
     80 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.AllDirectories);
     81 }
     82 else
     83 {
     84 return Directory.GetFiles(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
     85 }
     86 }
     87 catch (IOException ex)
     88 {
     89 throw ex;
     90 }
     91 }
     92 #endregion
     93 
     94 #region 检测指定目录是否为空
     95 /// <summary>
     96 /// 检测指定目录是否为空
     97 /// </summary>
     98 /// <param name="directoryPath">指定目录的绝对路径</param> 
     99 public static bool IsEmptyDirectory(string directoryPath)
    100 {
    101 try
    102 {
    103 //判断是否存在文件
    104 string[] fileNames = GetFileNames(directoryPath);
    105 if (fileNames.Length > 0)
    106 {
    107 return false;
    108 }
    109 
    110 //判断是否存在文件夹
    111 string[] directoryNames = GetDirectories(directoryPath);
    112 if (directoryNames.Length > 0)
    113 {
    114 return false;
    115 }
    116 
    117 return true;
    118 }
    119 catch
    120 {
    121 //这里记录日志
    122 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    123 return true;
    124 }
    125 }
    126 #endregion
    127 
    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 //判断指定文件是否存在
    143 if (fileNames.Length == 0)
    144 {
    145 return false;
    146 }
    147 else
    148 {
    149 return true;
    150 }
    151 }
    152 catch (Exception ex)
    153 {
    154 throw new Exception(ex.Message);
    155 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    156 }
    157 }
    158 
    159 /// <summary>
    160 /// 检测指定目录中是否存在指定的文件
    161 /// </summary>
    162 /// <param name="directoryPath">指定目录的绝对路径</param>
    163 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
    164 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param> 
    165 /// <param name="isSearchChild">是否搜索子目录</param>
    166 public static bool Contains(string directoryPath, string searchPattern, bool isSearchChild)
    167 {
    168 try
    169 {
    170 //获取指定的文件列表
    171 string[] fileNames = GetFileNames(directoryPath, searchPattern, true);
    172 
    173 //判断指定文件是否存在
    174 if (fileNames.Length == 0)
    175 {
    176 return false;
    177 }
    178 else
    179 {
    180 return true;
    181 }
    182 }
    183 catch (Exception ex)
    184 {
    185 throw new Exception(ex.Message);
    186 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    187 }
    188 }
    189 #endregion
    190 
    191 #region 创建目录
    192 /// <summary>
    193 /// 创建目录
    194 /// </summary>
    195 /// <param name="dir">要创建的目录路径包括目录名</param>
    196 public static void CreateDir(string dir)
    197 {
    198 if (dir.Length == 0) return;
    199 if (!Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir))
    200 Directory.CreateDirectory(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir);
    201 }
    202 #endregion
    203 
    204 #region 删除目录
    205 /// <summary>
    206 /// 删除目录
    207 /// </summary>
    208 /// <param name="dir">要删除的目录路径和名称</param>
    209 public static void DeleteDir(string dir)
    210 {
    211 if (dir.Length == 0) return;
    212 if (Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir))
    213 Directory.Delete(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir);
    214 }
    215 #endregion
    216 
    217 #region 删除文件
    218 /// <summary>
    219 /// 删除文件
    220 /// </summary>
    221 /// <param name="file">要删除的文件路径和名称</param>
    222 public static void DeleteFile(string file)
    223 {
    224 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + file))
    225 {
    226 File.Delete(HttpContext.Current.Request.PhysicalApplicationPath + file);
    227 }
    228 }
    229 #endregion
    230 
    231 #region 创建文件
    232 /// <summary>
    233 /// 创建文件
    234 /// </summary>
    235 /// <param name="dir">带后缀的文件名</param>
    236 /// <param name="pagestr">文件内容</param>
    237 public static void CreateFile(string dir, string pagestr)
    238 {
    239 dir = dir.Replace("/", "\");
    240 if (dir.IndexOf("\") > -1)
    241 CreateDir(dir.Substring(0, dir.LastIndexOf("\")));
    242 StreamWriter sw = new StreamWriter(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir, false, System.Text.Encoding.GetEncoding("GB2312"));
    243 sw.Write(pagestr);
    244 sw.Close();
    245 }
    246 /// <summary>
    247 /// 创建文件
    248 /// </summary>
    249 /// <param name="path">路径</param>
    250 /// <param name="content">内容</param>
    251 public static void CreateFileContent(string path, string content)
    252 {
    253 FileInfo fi = new FileInfo(path);
    254 var di = fi.Directory;
    255 if (!di.Exists)
    256 {
    257 di.Create();
    258 }
    259 StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("GB2312"));
    260 sw.Write(content);
    261 sw.Close();
    262 }
    263 #endregion
    264 
    265 #region 移动文件(剪贴--粘贴)
    266 /// <summary>
    267 /// 移动文件(剪贴--粘贴)
    268 /// </summary>
    269 /// <param name="dir1">要移动的文件的路径及全名(包括后缀)</param>
    270 /// <param name="dir2">文件移动到新的位置,并指定新的文件名</param>
    271 public static void MoveFile(string dir1, string dir2)
    272 {
    273 dir1 = dir1.Replace("/", "\");
    274 dir2 = dir2.Replace("/", "\");
    275 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir1))
    276 File.Move(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir1, HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir2);
    277 }
    278 #endregion
    279 
    280 #region 复制文件
    281 /// <summary>
    282 /// 复制文件
    283 /// </summary>
    284 /// <param name="dir1">要复制的文件的路径已经全名(包括后缀)</param>
    285 /// <param name="dir2">目标位置,并指定新的文件名</param>
    286 public static void CopyFile(string dir1, string dir2)
    287 {
    288 dir1 = dir1.Replace("/", "\");
    289 dir2 = dir2.Replace("/", "\");
    290 if (File.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir1))
    291 {
    292 File.Copy(HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir1, HttpContext.Current.Request.PhysicalApplicationPath + "\" + dir2, true);
    293 }
    294 }
    295 #endregion
    296 
    297 #region 根据时间得到目录名 / 格式:yyyyMMdd 或者 HHmmssff
    298 /// <summary>
    299 /// 根据时间得到目录名yyyyMMdd
    300 /// </summary>
    301 /// <returns></returns>
    302 public static string GetDateDir()
    303 {
    304 return DateTime.Now.ToString("yyyyMMdd");
    305 }
    306 /// <summary>
    307 /// 根据时间得到文件名HHmmssff
    308 /// </summary>
    309 /// <returns></returns>
    310 public static string GetDateFile()
    311 {
    312 return DateTime.Now.ToString("HHmmssff");
    313 }
    314 #endregion
    315 
    316 #region 根据时间获取指定路径的 后缀名的 的所有文件
    317 /// <summary>
    318 /// 根据时间获取指定路径的 后缀名的 的所有文件
    319 /// </summary>
    320 /// <param name="path">文件路径</param>
    321 /// <param name="Extension">后缀名 比如.txt</param>
    322 /// <returns></returns>
    323 public static DataRow[] GetFilesByTime(string path, string Extension)
    324 {
    325 if (Directory.Exists(path))
    326 {
    327 string fielExts = string.Format("*{0}", Extension);
    328 string[] files = Directory.GetFiles(path, fielExts);
    329 if (files.Length > 0)
    330 {
    331 DataTable table = new DataTable();
    332 table.Columns.Add(new DataColumn("filename", Type.GetType("System.String")));
    333 table.Columns.Add(new DataColumn("createtime", Type.GetType("System.DateTime")));
    334 for (int i = 0; i < files.Length; i++)
    335 {
    336 DataRow row = table.NewRow();
    337 DateTime creationTime = File.GetCreationTime(files[i]);
    338 string fileName = Path.GetFileName(files[i]);
    339 row["filename"] = fileName;
    340 row["createtime"] = creationTime;
    341 table.Rows.Add(row);
    342 }
    343 return table.Select(string.Empty, "createtime desc");
    344 }
    345 }
    346 return new DataRow[0];
    347 }
    348 #endregion
    349 
    350 #region 复制文件夹
    351 /// <summary>
    352 /// 复制文件夹(递归)
    353 /// </summary>
    354 /// <param name="varFromDirectory">源文件夹路径</param>
    355 /// <param name="varToDirectory">目标文件夹路径</param>
    356 public static void CopyFolder(string varFromDirectory, string varToDirectory)
    357 {
    358 Directory.CreateDirectory(varToDirectory);
    359 
    360 if (!Directory.Exists(varFromDirectory)) return;
    361 
    362 string[] directories = Directory.GetDirectories(varFromDirectory);
    363 
    364 if (directories.Length > 0)
    365 {
    366 foreach (string d in directories)
    367 {
    368 CopyFolder(d, varToDirectory + d.Substring(d.LastIndexOf("\")));
    369 }
    370 }
    371 string[] files = Directory.GetFiles(varFromDirectory);
    372 if (files.Length > 0)
    373 {
    374 foreach (string s in files)
    375 {
    376 File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\")), true);
    377 }
    378 }
    379 }
    380 #endregion
    381 
    382 #region 检查文件,如果文件不存在则创建
    383 /// <summary>
    384 /// 检查文件,如果文件不存在则创建 
    385 /// </summary>
    386 /// <param name="FilePath">路径,包括文件名</param>
    387 public static void ExistsFile(string FilePath)
    388 {
    389 //if(!File.Exists(FilePath)) 
    390 //File.Create(FilePath); 
    391 //以上写法会报错,详细解释请看下文......... 
    392 if (!File.Exists(FilePath))
    393 {
    394 FileStream fs = File.Create(FilePath);
    395 fs.Close();
    396 }
    397 }
    398 #endregion
    399 
    400 #region 删除指定文件夹对应其他文件夹里的文件
    401 /// <summary>
    402 /// 删除指定文件夹对应其他文件夹里的文件
    403 /// </summary>
    404 /// <param name="varFromDirectory">指定文件夹路径</param>
    405 /// <param name="varToDirectory">对应其他文件夹路径</param>
    406 public static void DeleteFolderFiles(string varFromDirectory, string varToDirectory)
    407 {
    408 Directory.CreateDirectory(varToDirectory);
    409 
    410 if (!Directory.Exists(varFromDirectory)) return;
    411 
    412 string[] directories = Directory.GetDirectories(varFromDirectory);
    413 
    414 if (directories.Length > 0)
    415 {
    416 foreach (string d in directories)
    417 {
    418 DeleteFolderFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\")));
    419 }
    420 }
    421 
    422 string[] files = Directory.GetFiles(varFromDirectory);
    423 
    424 if (files.Length > 0)
    425 {
    426 foreach (string s in files)
    427 {
    428 File.Delete(varToDirectory + s.Substring(s.LastIndexOf("\")));
    429 }
    430 }
    431 }
    432 #endregion
    433 
    434 #region 从文件的绝对路径中获取文件名( 包含扩展名 )
    435 /// <summary>
    436 /// 从文件的绝对路径中获取文件名( 包含扩展名 )
    437 /// </summary>
    438 /// <param name="filePath">文件的绝对路径</param> 
    439 public static string GetFileName(string filePath)
    440 {
    441 //获取文件的名称
    442 FileInfo fi = new FileInfo(filePath);
    443 return fi.Name;
    444 }
    445 #endregion
    446 
    447 #region 复制文件参考方法,页面中引用
    448 /// <summary>
    449 /// 复制文件参考方法,页面中引用
    450 /// </summary>
    451 /// <param name="cDir">新路径</param>
    452 /// <param name="TempId">模板引擎替换编号</param>
    453 public static void CopyFiles(string cDir, string TempId)
    454 {
    455 //if (Directory.Exists(Request.PhysicalApplicationPath + "\Controls"))
    456 //{
    457 // string TempStr = string.Empty;
    458 // StreamWriter sw;
    459 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\Default.aspx"))
    460 // {
    461 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\Default.aspx");
    462 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    463 
    464 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\Default.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    465 // sw.Write(TempStr);
    466 // sw.Close();
    467 // }
    468 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\Column.aspx"))
    469 // {
    470 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\Column.aspx");
    471 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    472 
    473 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\List.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    474 // sw.Write(TempStr);
    475 // sw.Close();
    476 // }
    477 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\Content.aspx"))
    478 // {
    479 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\Content.aspx");
    480 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    481 
    482 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\View.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    483 // sw.Write(TempStr);
    484 // sw.Close();
    485 // }
    486 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\MoreDiss.aspx"))
    487 // {
    488 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\MoreDiss.aspx");
    489 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    490 
    491 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\DissList.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    492 // sw.Write(TempStr);
    493 // sw.Close();
    494 // }
    495 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\ShowDiss.aspx"))
    496 // {
    497 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\ShowDiss.aspx");
    498 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    499 
    500 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\Diss.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    501 // sw.Write(TempStr);
    502 // sw.Close();
    503 // }
    504 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\Review.aspx"))
    505 // {
    506 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\Review.aspx");
    507 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    508 
    509 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\Review.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    510 // sw.Write(TempStr);
    511 // sw.Close();
    512 // }
    513 // if (File.Exists(Request.PhysicalApplicationPath + "\Controls\Search.aspx"))
    514 // {
    515 // TempStr = File.ReadAllText(Request.PhysicalApplicationPath + "\Controls\Search.aspx");
    516 // TempStr = TempStr.Replace("{$ChannelId$}", TempId);
    517 
    518 // sw = new StreamWriter(Request.PhysicalApplicationPath + "\" + cDir + "\Search.aspx", false, System.Text.Encoding.GetEncoding("GB2312"));
    519 // sw.Write(TempStr);
    520 // sw.Close();
    521 // }
    522 //}
    523 }
    524 #endregion
    525 
    526 #region 创建一个目录
    527 /// <summary>
    528 /// 创建一个目录
    529 /// </summary>
    530 /// <param name="directoryPath">目录的绝对路径</param>
    531 public static void CreateDirectory(string directoryPath)
    532 {
    533 //如果目录不存在则创建该目录
    534 if (!IsExistDirectory(directoryPath))
    535 {
    536 Directory.CreateDirectory(directoryPath);
    537 }
    538 }
    539 #endregion
    540 
    541 #region 创建一个文件
    542 /// <summary>
    543 /// 创建一个文件。
    544 /// </summary>
    545 /// <param name="filePath">文件的绝对路径</param>
    546 public static void CreateFile(string filePath)
    547 {
    548 try
    549 {
    550 //如果文件不存在则创建该文件
    551 if (!IsExistFile(filePath))
    552 {
    553 //创建一个FileInfo对象
    554 FileInfo file = new FileInfo(filePath);
    555 
    556 //创建文件
    557 FileStream fs = file.Create();
    558 
    559 //关闭文件流
    560 fs.Close();
    561 }
    562 }
    563 catch (Exception ex)
    564 {
    565 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    566 throw ex;
    567 }
    568 }
    569 
    570 /// <summary>
    571 /// 创建一个文件,并将字节流写入文件。
    572 /// </summary>
    573 /// <param name="filePath">文件的绝对路径</param>
    574 /// <param name="buffer">二进制流数据</param>
    575 public static void CreateFile(string filePath, byte[] buffer)
    576 {
    577 try
    578 {
    579 //如果文件不存在则创建该文件
    580 if (!IsExistFile(filePath))
    581 {
    582 //创建一个FileInfo对象
    583 FileInfo file = new FileInfo(filePath);
    584 
    585 //创建文件
    586 FileStream fs = file.Create();
    587 
    588 //写入二进制流
    589 fs.Write(buffer, 0, buffer.Length);
    590 
    591 //关闭文件流
    592 fs.Close();
    593 }
    594 }
    595 catch (Exception ex)
    596 {
    597 //LogHelper.WriteTraceLog(TraceLogLevel.Error, ex.Message);
    598 throw ex;
    599 }
    600 }
    601 #endregion
    602 
    603 #region 获取文本文件的行数
    604 /// <summary>
    605 /// 获取文本文件的行数
    606 /// </summary>
    607 /// <param name="filePath">文件的绝对路径</param> 
    608 public static int GetLineCount(string filePath)
    609 {
    610 //将文本文件的各行读到一个字符串数组中
    611 string[] rows = File.ReadAllLines(filePath);
    612 
    613 //返回行数
    614 return rows.Length;
    615 }
    616 #endregion
    617 
    618 #region 获取一个文件的长度
    619 /// <summary>
    620 /// 获取一个文件的长度,单位为Byte
    621 /// </summary>
    622 /// <param name="filePath">文件的绝对路径</param> 
    623 public static long GetFileSize(string filePath)
    624 {
    625 //创建一个文件对象
    626 FileInfo fi = new FileInfo(filePath);
    627 
    628 //获取文件的大小
    629 return fi.Length;
    630 }
    631 #endregion
    632 
    633 #region 获取文件大小并以B,KB,GB,TB
    634 /// <summary>
    635 /// 计算文件大小函数(保留两位小数),Size为字节大小
    636 /// </summary>
    637 /// <param name="size">初始文件大小</param>
    638 /// <returns></returns>
    639 public static string ToFileSize(long size)
    640 {
    641 string m_strSize = "";
    642 long FactSize = 0;
    643 FactSize = size;
    644 if (FactSize < 1024.00)
    645 m_strSize = FactSize.ToString("F2") + " 字节";
    646 else if (FactSize >= 1024.00 && FactSize < 1048576)
    647 m_strSize = (FactSize / 1024.00).ToString("F2") + " KB";
    648 else if (FactSize >= 1048576 && FactSize < 1073741824)
    649 m_strSize = (FactSize / 1024.00 / 1024.00).ToString("F2") + " MB";
    650 else if (FactSize >= 1073741824)
    651 m_strSize = (FactSize / 1024.00 / 1024.00 / 1024.00).ToString("F2") + " GB";
    652 return m_strSize;
    653 }
    654 #endregion
    655 
    656 #region 获取指定目录中的子目录列表
    657 /// <summary>
    658 /// 获取指定目录及子目录中所有子目录列表
    659 /// </summary>
    660 /// <param name="directoryPath">指定目录的绝对路径</param>
    661 /// <param name="searchPattern">模式字符串,"*"代表0或N个字符,"?"代表1个字符。
    662 /// 范例:"Log*.xml"表示搜索所有以Log开头的Xml文件。</param>
    663 /// <param name="isSearchChild">是否搜索子目录</param>
    664 public static string[] GetDirectories(string directoryPath, string searchPattern, bool isSearchChild)
    665 {
    666 try
    667 {
    668 if (isSearchChild)
    669 {
    670 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.AllDirectories);
    671 }
    672 else
    673 {
    674 return Directory.GetDirectories(directoryPath, searchPattern, SearchOption.TopDirectoryOnly);
    675 }
    676 }
    677 catch (IOException ex)
    678 {
    679 throw ex;
    680 }
    681 }
    682 #endregion
    683 
    684 #region 向文本文件写入内容
    685 
    686 /// <summary>
    687 /// 向文本文件中写入内容
    688 /// </summary>
    689 /// <param name="filePath">文件的绝对路径</param>
    690 /// <param name="text">写入的内容</param>
    691 /// <param name="encoding">编码</param>
    692 public static void WriteText(string filePath, string text, Encoding encoding)
    693 {
    694 //向文件写入内容
    695 File.WriteAllText(filePath, text, encoding);
    696 }
    697 #endregion
    698 
    699 #region 向文本文件的尾部追加内容
    700 /// <summary>
    701 /// 向文本文件的尾部追加内容
    702 /// </summary>
    703 /// <param name="filePath">文件的绝对路径</param>
    704 /// <param name="content">写入的内容</param>
    705 public static void AppendText(string filePath, string content)
    706 {
    707 File.AppendAllText(filePath, content);
    708 }
    709 #endregion
    710 
    711 #region 将现有文件的内容复制到新文件中
    712 /// <summary>
    713 /// 将源文件的内容复制到目标文件中
    714 /// </summary>
    715 /// <param name="sourceFilePath">源文件的绝对路径</param>
    716 /// <param name="destFilePath">目标文件的绝对路径</param>
    717 public static void Copy(string sourceFilePath, string destFilePath)
    718 {
    719 File.Copy(sourceFilePath, destFilePath, true);
    720 }
    721 #endregion
    722 
    723 #region 将文件移动到指定目录
    724 /// <summary>
    725 /// 将文件移动到指定目录
    726 /// </summary>
    727 /// <param name="sourceFilePath">需要移动的源文件的绝对路径</param>
    728 /// <param name="descDirectoryPath">移动到的目录的绝对路径</param>
    729 public static void Move(string sourceFilePath, string descDirectoryPath)
    730 {
    731 //获取源文件的名称
    732 string sourceFileName = GetFileName(sourceFilePath);
    733 
    734 if (IsExistDirectory(descDirectoryPath))
    735 {
    736 //如果目标中存在同名文件,则删除
    737 if (IsExistFile(descDirectoryPath + "\" + sourceFileName))
    738 {
    739 DeleteFile(descDirectoryPath + "\" + sourceFileName);
    740 }
    741 //将文件移动到指定目录
    742 File.Move(sourceFilePath, descDirectoryPath + "\" + sourceFileName);
    743 }
    744 }
    745 #endregion
    746 
    747 #region 从文件的绝对路径中获取文件名( 不包含扩展名 )
    748 /// <summary>
    749 /// 从文件的绝对路径中获取文件名( 不包含扩展名 )
    750 /// </summary>
    751 /// <param name="filePath">文件的绝对路径</param> 
    752 public static string GetFileNameNoExtension(string filePath)
    753 {
    754 //获取文件的名称
    755 FileInfo fi = new FileInfo(filePath);
    756 return fi.Name.Split('.')[0];
    757 }
    758 #endregion
    759 
    760 #region 从文件的绝对路径中获取扩展名
    761 /// <summary>
    762 /// 从文件的绝对路径中获取扩展名
    763 /// </summary>
    764 /// <param name="filePath">文件的绝对路径</param> 
    765 public static string GetExtension(string filePath)
    766 {
    767 //获取文件的名称
    768 FileInfo fi = new FileInfo(filePath);
    769 return fi.Extension;
    770 }
    771 #endregion
    772 
    773 #region 清空指定目录
    774 /// <summary>
    775 /// 清空指定目录下所有文件及子目录,但该目录依然保存.
    776 /// </summary>
    777 /// <param name="directoryPath">指定目录的绝对路径</param>
    778 public static void ClearDirectory(string directoryPath)
    779 {
    780 directoryPath = HttpContext.Current.Server.MapPath(directoryPath);
    781 if (IsExistDirectory(directoryPath))
    782 {
    783 //删除目录中所有的文件
    784 string[] fileNames = GetFileNames(directoryPath);
    785 for (int i = 0; i < fileNames.Length; i++)
    786 {
    787 DeleteFile(fileNames[i]);
    788 }
    789 //删除目录中所有的子目录
    790 string[] directoryNames = GetDirectories(directoryPath);
    791 for (int i = 0; i < directoryNames.Length; i++)
    792 {
    793 DeleteDirectory(directoryNames[i]);
    794 }
    795 }
    796 }
    797 #endregion
    798 
    799 #region 清空文件内容
    800 /// <summary>
    801 /// 清空文件内容
    802 /// </summary>
    803 /// <param name="filePath">文件的绝对路径</param>
    804 public static void ClearFile(string filePath)
    805 {
    806 //删除文件
    807 File.Delete(filePath);
    808 
    809 //重新创建该文件
    810 CreateFile(filePath);
    811 }
    812 #endregion
    813 
    814 #region 删除指定目录
    815 /// <summary>
    816 /// 删除指定目录及其所有子目录
    817 /// </summary>
    818 /// <param name="directoryPath">指定目录的绝对路径</param>
    819 public static void DeleteDirectory(string directoryPath)
    820 {
    821 directoryPath = HttpContext.Current.Server.MapPath(directoryPath);
    822 if (IsExistDirectory(directoryPath))
    823 {
    824 Directory.Delete(directoryPath, true);
    825 }
    826 }
    827 #endregion
    828 
    829 #region 本地路径
    830 /// <summary>
    831 /// 本地路径
    832 /// </summary>
    833 /// <param name="path"></param>
    834 /// <returns></returns>
    835 public static string MapPath(string path)
    836 {
    837 return HttpContext.Current.Server.MapPath(path);
    838 }
    839 #endregion
  • 相关阅读:
    CSS盒子模式(DIV布局快速入门)
    CSS中的滑动门技术
    由浅入深漫谈margin属性
    zz Apache 虚拟主机 VirtualHost 配置
    动态生成编译运行java类
    ubuntu 手动设置DNS服务器,重启后不能上网
    ubuntu下部署发布环境
    zz [Java]读取文件方法大全
    Ubuntu apache2 主机配置文件
    JAVA的CALLBACK
  • 原文地址:https://www.cnblogs.com/yy15611/p/13370552.html
Copyright © 2011-2022 走看看