Merhabalar ,
Dün bir arkadaşım Visual Studio'da ki son çalıştığımızı projelerin görüntülendiği "Recent Projects" bölümünden projeleri nasıl sileriz diye uğraşıyordu.Bende demekki lazım oluyor diye düşünerek ufak bir *.dll yazdım ve bu dll ile bu temizleme işlemini yapabilirsiniz.Visual Studo bu proje bilgilerini Registry'de saklamaktadır. Sakladığı adres "Software\Microsoft\VisualStudio\9.0\ProjectMRUList" veya "Software\Microsoft\VisualStudio\10.0\ProjectMRUList" diye ayrılmaktadır.Her versiyon farklı dizinlerde saklanır.Kod çalıştırmadan da Regedit üzerinden belirtilen dizinlere gidip adresleri silebilirsiniz tabi ki :)
Kodlar aşağıdaki gibidir.
public enum IdeVersion
{
IDE90,
IDE10
}
public class MicrosoftIdeRejectProjectsFile
{
private IdeVersion versionSelect = IdeVersion.IDE90;
public MicrosoftIdeRejectProjectsFile(IdeVersion setVersion)
{
versionSelect = setVersion;
}
public bool Clear()
{
bool status = false;
RegistryKey key = Registry.CurrentUser.CreateSubKey(GetVersion(versionSelect));
string[] list = key.GetValueNames();
try
{
foreach (string k in list)
{
if (IsFileSolution(key.GetValue(k).ToString()))
key.DeleteValue(k);
}
status = true;
}
catch
{
status = false;
}
if (list.Length == 0)
status = true;
return status;
}
private bool IsFileSolution(string filePath)
{
bool status = false;
try
{
FileInfo file = new FileInfo(filePath);
if (file.Extension == ".sln" || file.Extension == ".csproj")
status = true;
else
status = false;
}
catch
{
if (filePath.Contains("vdproj") || filePath.Contains(".sln") || filePath.Contains(".csproj"))
status = true;
else
status = false;
}
return status;
}
private string GetVersion(IdeVersion versionSelect)
{
string version = @"Software\Microsoft\VisualStudio\";
switch (versionSelect)
{
case IdeVersion.IDE90:
version += "9.0";
break;
case IdeVersion.IDE10:
version += "10.0";
break;
}
version += "\\ProjectMRUList";
return version;
}
}
[/code]
Aşağıda ki gibi Clear() metodunu çağırarak bu temizleme işlemini gerçekleştirebilirsiniz.
[code:c#]
MicrosoftIdeRejectProjectsFile ide = new MicrosoftIdeRejectProjectsFile(MicrosoftIdeRejectProjectDelete.IdeVersion.IDE10);
if(ide.Clear())
Console.WriteLine("Proje listesi temizlendi");
else
Console.WriteLine("Proje listesi temizlenemedi");
Örnek kodu aşağıdan indirebilirsiniz.
İndir
İyi Çalışmalar :)