C#目录操作 Path类与Directory类

Path

 

对包含文件或目录路径信息的 String 实例执行操作。 这些操作是以跨平台的方式执行的。

路径是提供文件或目录位置的字符串。

路径可以包含绝对或相对位置信息。

若要确定当前目录,请调用 Directory.GetCurrentDirectory。

Path 类的所有成员都是静态的,因此无需具有路径的实例即可被调用。

 

常用方法:

 

Path.GetFullPath 方法

返回指定路径字符串的绝对路径

 

——语法:

 public static string GetFullPath(

       string path

)

 

——参数

path

类型:System.String

要为其获取绝对路径信息的文件或目录。

 

——返回值

类型:System.String

path 的完全限定的位置,例如“C:\MyFile.txt”。

备注:path 指定的文件或目录不需要存在。 例如,如果 c:\temp\newdir 是当前目录,则对文件名(例如 test.txt)调用 GetFullPath 将返回 c:\temp\newdir\test.txt。 该文件不需要存在。

Path.GetFileName 方法

返回指定路径字符串的文件名和扩展名。

与GetFullPath 方法 进行逆操作

 

Path.GetDirectoryName 方法

返回指定路径字符串的目录信息。

 

——语法:

public static string GetDirectoryName(

       string path

)

 

——参数

path

类型:System.String

文件或目录的路径。

 

——返回值

类型:System.String

path 的目录信息,如果 path 表示根目录或为 null,则该目录信息为 null。 如果 path 没有包含目录信息,则返回 String.Empty。

 

——备注:

由于返回的路径不包含 DirectorySeparatorChar 或 AltDirectorySeparatorChar,因此将返回的路径传回 GetDirectoryName 方法会导致随后每次调用得到的字符串时截断一个文件夹级别。 例如,将路径“C:\Directory\SubDirectory\test.txt”传入 GetDirectoryName 方法将返回“C:\Directory\SubDirectory”。 将该字符串“C:\Directory\SubDirectory”传入 GetDirectoryName 将导致返回“C:\Directory”。

 

Path.Combine 方法 (String, String)

将两个字符串组合成一个路径。返回字符串。

最多支持四个路径的组合

 

=========================================================================

 

Directory

 

公开用于创建、移动和枚举通过目录和子目录的静态方法。无法继承此类。

 

——备注

--------------------------------------------------------------------------------

将 Directory 类用于典型操作,如复制、移动、重命名、创建和删除目录。也可将 Directory 类用于获取和设置与目录的创建、访问及写入操作相关的 DateTime 信息。

 

由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高。大多数 Directory 方法要求当前操作的目录的路径。

 

Directory 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 DirectoryInfo 的相应实例方法,因为并不总是需要安全检查。

 

常用方法:

 

Directory.GetFiles 方法 (String)

 

返回指定目录中的文件的名称。

命名空间:System.IO

 

——语法:

public static string[] GetFiles (

       string path

)

 

——参数

path

将从其检索文件的目录。

 

——返回值

指定目录中文件名的 String 数组。文件名包含完整路径。

 

——备注:

文件名包含完整路径。

 

此方法与将星号 (*) 指定为搜索模式的 GetFiles 方法相同。

 

允许 path 参数指定相对或绝对路径信息。相对路径信息被解释为相对于当前工作目录。若要获取当前工作目录,请参见 GetCurrentDirectory。

 

path 参数不区分大小写。

 

Directory.GetFiles 方法 (String, String)   //重载的

 

返回指定目录中与指定搜索模式匹配的文件的名称。

 

——语法:

public static string[] GetFiles (

       string path,

       string searchPattern

)

 

——参数

path

要搜索的目录。

searchPattern

要与 path 中的文件名匹配的搜索字符串。此参数不能以两个句点(“..”)结束,不能在 DirectorySeparatorChar 或 AltDirectorySeparatorChar 的前面包含两个句点(“..”),也不能包含 InvalidPathChars 中的任何字符。

 

——返回值

一个 String 数组,它包含指定目录中与指定搜索模式匹配的文件的名称。文件名包含完整路径。

 

——备注:

文件名包含完整路径。

在 searchPattern 中允许使用以下通配说明符。

通配符

*

 零个或多个字符。

?

 正好一个字符。

 通配说明符以外的字符表示它们自己。例如,searchPattern 字符串“*t”搜索 path 中所有以字母“t”结尾的名称。searchPattern 字符串“s*”搜索 path 中所有以字母“s”开头的名称。

 

其它常用 Directory 成员

——公共方法:

CreateDirectory  已重载。 创建指定路径中的所有目录。

Delete    已重载。 删除指定的目录。 

Equals   已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)

GetCreationTime  获取目录的创建日期和时间。

 

GetCurrentDirectory  获取应用程序的当前工作目录。 

GetDirectories       已重载。 获取指定目录中子目录的名称。 

GetFileSystemEntries  已重载。 返回指定目录中所有文件和子目录的名称。

 

GetParent  检索指定路径的父目录,包括绝对路径和相对路径。 

GetType   获取当前实例的 Type。 (从 Object 继承。)

Move  将文件或目录及其内容移到新位置。 

ToString   返回表示当前 Object 的 String。 (从 Object 继承。)

=========================================================================

以下代码段是本人的一点实践,

 

检索某文件夹下所有包含检索关键字的文件,打印到屏幕:

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             //检索某文件夹下所有包含检索关键字的文件,打印到屏幕
 6             #region test
 7             //   Directory
 8 
 9             //string path = Path.GetFullPath("1.txt");
10             //Console.WriteLine(path);
11             //string tem=Path.GetFileName(path);
12             //Console.WriteLine(tem);
13             //Console.ReadKey(); 
14             #endregion
15             string path = (@"F:\pdf"); //要找的目录
16             string reg = @".*美.*\..*";   //正则表达式
17             //string reg = @".+美.+\..+"; 
18             string[] filename = Directory.GetFiles(path);//Directory 从磁盘读取文件名存入字符串数组
19 
20             // MatchCollection mc=null;
21             for (int i = 0; i < filename.Length; i++)
22             {
23 
24                 string temp = Path.GetFileName(filename[i]);   //把文件的完整路径转换成 文件名.扩展名 形式
25                 MatchCollection mc = Regex.Matches(temp, reg);  //正则表达式进行匹配,
26 
27                 //if (mc != null)  //mc 始终不为null,所以始终打印
28                 //{
29                 //    Console.WriteLine(filename[i]);
30                 //}
31 
32 
33                 foreach (Match t in mc)
34                 {
35                     Console.WriteLine(filename[i]);//打印结果,完整路径
36                     Console.WriteLine(t);  //打印结果,文件名.扩展名 形式
37                 }
38 
39 
40                 //for ( i = 0; i < mc.Count ; i++)
41                 //{
42                 //    Console.WriteLine(filename[i]);
43                 //}
44             }
45                 Console.ReadKey();
46             
47         }
48     }

 

 

posted @ 2012-06-05 22:48  net515  阅读(11751)  评论(0编辑  收藏  举报