平时使用Path类不多,常用Combine来串联两个路径,其他的很少用,偶然发现Path提供了很多方便实用的函数。
名称
|
说明
|
ChangeExtension |
更改路径字符串的扩展名。 |
Combine |
合并两个路径字符串。 |
GetDirectoryName |
返回指定路径字符串的目录信息。 |
GetExtension |
返回指定的路径字符串的扩展名。 |
GetFileName |
返回指定路径字符串的文件名和扩展名。 |
GetFileNameWithoutExtension |
返回不具有扩展名的指定路径字符串的文件名。 |
GetFullPath |
返回指定路径字符串的绝对路径。 |
GetInvalidFileNameChars |
获取包含不允许在文件名中使用的字符的数组。 |
GetInvalidPathChars |
获取包含不允许在路径名中使用的字符的数组。 |
GetPathRoot |
获取指定路径的根目录信息。 |
GetRandomFileName |
返回随机文件夹名或文件名。 |
GetTempFileName |
创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径。 |
GetTempPath |
返回当前系统的临时文件夹的路径。 |
HasExtension |
确定路径是否包括文件扩展名。 |
IsPathRooted |
获取一个值,该值指示指定的路径字符串是包含绝对路径信息还是包含相对路径信息。 |
我比较喜欢那个GetTempPath 函数,一句代码就可以返回临时目录的路径了,很方便,大家可能也注意到,Environment.GetEnvironmentVariable(string variable)也提供了如何获取特别路径的函数,另外Environment.GetFolderPath(Environment.SpecialFolder folder)的函数也提供了很多实用功能,返回相应的目录,枚举包含有:
EnvironmentSpecialFolder 枚举
成员名称 |
说明 |
ApplicationData |
目录,它用作当前漫游用户的应用程序特定数据的公共储存库。 |
CommonApplicationData |
目录,它用作所有用户使用的应用程序特定数据的公共储存库。 |
LocalApplicationData |
目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。 |
Cookies |
用作 Internet Cookie 的公共储存库的目录。 |
Desktop |
逻辑桌面,而不是物理文件系统位置。 |
Favorites |
用作用户收藏夹项的公共储存库的目录。 |
History |
用作 Internet 历史记录项的公共储存库的目录。 |
InternetCache |
用作 Internet 临时文件的公共储存库的目录。 |
Programs |
包含用户程序组的目录。 |
MyComputer |
“我的电脑”文件夹。 |
MyMusic |
“My Music”文件夹。 |
MyPictures |
“My Pictures”文件夹。 |
Recent |
包含用户最近使用过的文档的目录。 |
SendTo |
包含“发送”菜单项的目录。 |
StartMenu |
包含“开始”菜单项的目录。 |
Startup |
对应于用户的“启动”程序组的目录。 |
System |
“System”目录。 |
Templates |
用作文档模板的公共储存库的目录。 |
DesktopDirectory |
用于物理上存储桌面上的文件对象的目录。 |
Personal |
用作文档的公共储存库的目录。 |
MyDocuments |
“我的电脑”文件夹。 |
ProgramFiles |
“Program files”目录。 |
CommonProgramFiles |
用于应用程序间共享的组件的目录 |
最后我顺便提供一个递归删除文件夹和文件的操作函数,方便大家
/// <summary>
/// 删除文件夹及其下面的子文件和文件夹
/// </summary>
/// <param name="filePath"></param>
public static void DeleteSubFileAndFolder(string filePath)
{
if (Directory.Exists(filePath))
{
foreach (string path in Directory.GetFileSystemEntries(filePath))
{
if (File.Exists(path))
{
File.Delete(path);
}
else
{
DeleteSubFileAndFolder(path);
}
}
Directory.Delete(filePath);
}
}
本文转自博客园伍华聪的博客,原文链接:如何利用系统函数操作文件夹及文件,如需转载请自行联系原博主。