国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.NET中如何訪問被系統保護的文件夾

2019-11-17 04:18:20
字體:
來源:轉載
供稿:網友

Windows中有很多文件夾是受系統保護的,比如System Volume Information,中文名稱可以翻譯為“系統卷標信息”,這個文件夾里就存儲著系統還原的備份信息。對于這類系統資源,應用程序是無法直接訪問其中的子目錄和文件的,所以必須讓Windows認為我們程序的當前訪問是安全的,才能讓我們訪問,這就要用到System.Security.accessControl命名空間了,它提供了有關安全訪問系統資源的方法。
    下面是C#寫的一個獲取受保護文件夾的子目錄的函數:

//注意添加名稱空間的引用:using System.Security.AccessControl;

PRivate DirectoryInfo[] GetDirList(DirectoryInfo dirInfo)
{
    if (dirInfo == null || !dirInfo.Exists)
        return null;
    DirectoryInfo[] dirInfos = null;
    try
    {
        //一般情況下,按正常方法獲取目錄列表
        dirInfos = dirInfo.GetDirectories();
    }
    catch { }
    //如果不為空,那么說明目錄列表成功,否則需要添加安全訪問規則
    if (dirInfos != null)
        return dirInfos;

    //新建賬戶安全訪問規則
    FileSystemAccessRule fsRule = new FileSystemAccessRule(System.Environment.UserName
        , FileSystemRights.Modify, AccessControlType.Allow);

    //添加安全訪問規則
    DirectorySecurity dirSecurity = dirInfo.GetAccessControl();
    dirSecurity.AddAccessRule(fsRule);
    dirInfo.SetAccessControl(dirSecurity);

    try
    {
        dirInfos = dirInfo.GetDirectories();
    }
    catch (Exception ex)
    {
        MessageBox.Show("無法訪問文件夾:" + dirInfo.FullName + "/n" + ex.Message);
    }
    //移除安全訪問規則
    dirSecurity = dirInfo.GetAccessControl();
    dirSecurity.RemoveAccessRule(fsRule);
    dirInfo.SetAccessControl(dirSecurity);
    return dirInfos;
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳阳市| 夏河县| 文昌市| 张家川| 高雄市| 鄂伦春自治旗| 佛山市| 定边县| 仙居县| 宜宾市| 麦盖提县| 年辖:市辖区| 肃宁县| 图们市| 淅川县| 大庆市| 潜山县| 普定县| 吉水县| 平山县| 和田县| 巨野县| 马尔康县| 闵行区| 衡阳县| 库伦旗| 淮北市| 罗甸县| 潞西市| 遵化市| 扶余县| 福建省| 千阳县| 波密县| 古浪县| 开阳县| 双江| 屏东市| 南漳县| 日喀则市| 车险|