zoukankan      html  css  js  c++  java
  • 如何利用系统函数操作文件夹及文件

    平时使用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二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    Java中参数传递时值传递的机制分析
    掰碎了讲中文编码
    掰碎了讲换行符和回车符
    创建父子控制器
    分页(进行封装处理)
    五:面向对象的三大特性:封装、继承、多态
    iOS9弹框的最新两种方式(解决控制器以外的类无法弹出的问题)
    各类报错汇集
    NBA季后赛结果预测
    十:类的本质及isa指针和元类的简单介绍
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/1213330.html
Copyright © 2011-2022 走看看