public static SpecialFolder Create(string parentpath, string alias)
        {
            DirectoryInfo parentdir = new DirectoryInfo(parentpath);
            int thisid = 0;
            foreach (DirectoryInfo dir in parentdir.GetDirectories())
            {
                if (dir.Name.StartsWith("spf_"))
                {
                    thisid++;
                }
            }
            DirectoryInfo count = new DirectoryInfo(parentdir.FullName + @"\spf_" + thisid.ToString());
            while (count.Exists)
            {
                thisid++;
            }
            DirectoryInfo cont = new DirectoryInfo(parentdir.FullName + @"\spf_" + thisid.ToString());
            cont.Create();
            FileInfo magic = new FileInfo(cont.FullName + @"\desktop.ini");
            FileAttributes fa = magic.Attributes;
            FileStream fs = magic.OpenWrite();
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(@"[" + @".ShellClassInfo" + @"]");
            sw.WriteLine(@"LocalizedResourceName=" + alias);
            sw.Flush();
            sw.Close();
            fs.Close();
            FileInfo mer = new FileInfo(cont.FullName + @"\desktop.ini");
            mer.Attributes = FileAttributes.Hidden | FileAttributes.Archive | FileAttributes.System;
            Common.LPSHFOLDERCUSTOMSETTINGS FolderSettings = new Common.LPSHFOLDERCUSTOMSETTINGS();
            FolderSettings.dwMask = 0x10;
            FolderSettings.pszIconFile = @"X:\Windows\system32\SHELL32.dll";
            FolderSettings.iIconIndex = 3;

            UInt32 FCS_READ = 0x00000001;
            UInt32 FCS_FORCEWRITE = 0x00000002;
            UInt32 FCS_WRITE = FCS_READ | FCS_FORCEWRITE;

            string pszPath = cont.FullName;
            UInt32 HRESULT = Common.SHGetSetFolderCustomSettings(ref FolderSettings, pszPath, FCS_WRITE);
            Common.RefreshIconCache();
            return new SpecialFolder(cont.FullName);
        }
        public void Rename(string newname)
        {
            FileInfo magic = new FileInfo(dI.FullName + @"\desktop.ini");
            FileAttributes fa = magic.Attributes;
            FileStream fs = new FileStream(magic.FullName, FileMode.Truncate);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(@"[" + @".ShellClassInfo" + @"]");
            sw.WriteLine(@"LocalizedResourceName=" + newname);
            sw.Flush();
            sw.Close();
            fs.Close();
            FileInfo mer = new FileInfo(dI.FullName + @"\desktop.ini");
            mer.Attributes = FileAttributes.Hidden | FileAttributes.Archive | FileAttributes.System;
            Common.LPSHFOLDERCUSTOMSETTINGS FolderSettings = new Common.LPSHFOLDERCUSTOMSETTINGS();
            FolderSettings.dwMask = 0x10;
            FolderSettings.pszIconFile = @"X:\Windows\system32\SHELL32.dll";
            FolderSettings.iIconIndex = 3;

            UInt32 FCS_READ = 0x00000001;
            UInt32 FCS_FORCEWRITE = 0x00000002;
            UInt32 FCS_WRITE = FCS_READ | FCS_FORCEWRITE;

            string pszPath = dI.FullName;
            UInt32 HRESULT = Common.SHGetSetFolderCustomSettings(ref FolderSettings, pszPath, FCS_WRITE);
            Common.RefreshIconCache();
        }