如何利用系统函数操作文件夹及文件

转自  www.iqidi.com

平时使用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);
            }

        }
主要研究技术:代码生成工具、Visio二次开发
    
    转载请注明出处:
撰写人:伍华聪  http:
//www.iqidi.com 
posted @ 2008-06-06 17:02  Simon.guo  阅读(159)  评论(0编辑  收藏  举报