现在的位置: 首页 > 综合 > 正文

设置IIsWebDirectory对象属性

2012年04月24日 ⁄ 综合 ⁄ 共 2676字 ⁄ 字号 评论关闭

/// <summary>
        /// System.DirectoryServices.DirectoryEntry De = new DirectoryEntry();
        /// De.Path = @"IIS://localhost/W3SVC/1/ROOT/Dir1/Dir2/Dir3";
        /// RecursiveSetIIsWebDirectory(De);
        /// De.Properties["AccessFlags"][0] = 513;
        /// De.CommitChanges();
        /// </summary>
        /// <param name="IIsWebDirectoryObject"></param>
        public void RecursiveSetIIsWebDirectory(DirectoryEntry IIsWebDirectoryObject)
        {
            try
            {
                bool temp = DirectoryEntry.Exists(IIsWebDirectoryObject.Path);
            }
            catch
            {
                string DirName = "";
                string Path = IIsWebDirectoryObject.Path;
                string ParentPath = "";

                DirName = Path.Substring(Path.LastIndexOf(@"/") + 1);
                ParentPath = Path.Substring(0, Path.Length - (DirName.Length + 1));

                DirectoryEntry ParentDe = new DirectoryEntry(ParentPath);
                RecursiveSetIIsWebDirectory(ParentDe); // Call for parent directory

                // Create a new entry in the IIS Metabase
                DirectoryEntry newChild;
                newChild = ParentDe.Children.Add(DirName, "IIsWebDirectory"); // Create the new IIsWebDirectory
                newChild.CommitChanges(); // Commit the changes. Create a new IIsWebDirectory
            }
        }

        /// <summary>
        /// System.DirectoryServices.DirectoryEntry De = new DirectoryEntry();
        /// De.Path = @"IIS://localhost/W3SVC/1/ROOT/Dir1/Dir2/Dir3/file.txt";
        /// RecursiveSetIIsWebFile(De, 0);
        /// De.Properties["AccessFlags"][0] = 513;
        /// De.CommitChanges();
        /// </summary>
        /// <param name="DirectoryEntryObject"></param>
        /// <param name="depth"></param>
        public void RecursiveSetIIsWebFile(DirectoryEntry DirectoryEntryObject, int depth)
        {
            try
            {
                bool temp = DirectoryEntry.Exists(DirectoryEntryObject.Path);
            }
            catch
            {
                string DirName = "";
                string Path = DirectoryEntryObject.Path;
                string ParentPath = "";

                DirName = Path.Substring(Path.LastIndexOf(@"/") + 1);
                ParentPath = Path.Substring(0, Path.Length - (DirName.Length + 1));

                DirectoryEntry ParentDe = new DirectoryEntry(ParentPath);
                RecursiveSetIIsWebFile(ParentDe, depth + 1);

                DirectoryEntry newChild;
                if (depth == 0)
                {
                    newChild = ParentDe.Children.Add(DirName, "IIsWebFile"); // Create the new IIsWebFile
                }
                else
                {
                    newChild = ParentDe.Children.Add(DirName, "IIsWebDirectory"); // Create the new IIsWebDirectory
                }
                newChild.CommitChanges();
            }
        }

抱歉!评论已关闭.