随笔 - 48, 文章 - 4, 评论 - 332, 引用 - 20
数据加载中……

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

平时使用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)的函数也提供了很多实用功能,返回相应的目录,枚举包含有:

Environment.SpecialFolder 枚举

成员名称

说明

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 
    
Tag标签: 开发辅助

posted on 2008-06-04 20:31 伍华聪 阅读(2931) 评论(6)  编辑 收藏

评论

#1楼    回复  引用    

最后的删除操作需要递归么?Directory.Delete(filePath,true);就可以了啊
2008-06-05 08:48 | zjfeiye [未注册用户]

#2楼 [楼主]   回复  引用  查看    

@zjfeiye
厉害,谢谢提供,向你致敬
2008-06-05 09:33 | 伍华聪      

#3楼    回复  引用    

Directory.Delete(filePath,true);
基本的用法
2008-06-05 09:54 | zzzzz [未注册用户]

#4楼    回复  引用  查看    

学习了,写的很好啊!
2008-06-06 14:28 | chenyaping      

#5楼    回复  引用    

很好 我决定收下了
2008-07-07 17:23 | zzticzh1 [未注册用户]

#6楼    回复  引用    

Delete(String, Boolean) 删除指定的目录并(如果指示)删除该目录中的任何子目录。 哈哈 这个很好用
2008-07-07 17:25 | zzticzh1 [未注册用户]

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-06-11 13:10 编辑过


相关链接: