প্রশ্নের কোনও প্রোগ্রামেটিক সমাধানের প্রয়োজন নেই বলে মনে হয় না , তবে আমার গুগল অনুসন্ধান আমাকে যেভাবেই এখানে এনেছে। সর্বাধিক সাধারণ ইনস্টলেশন পাথের উপর ভিত্তি করে এসডিকে কোথায় ইনস্টল করা হয়েছে তা সনাক্ত করার জন্য এখানে আমার সি # প্রচেষ্টা রয়েছে।
static string FindAndroidSDKPath()
{
string uniqueFile = Path.Combine("platform-tools", "adb.exe"); // look for adb in Android folders
string[] searchDirs =
{
// User/AppData/Local
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
// Program Files
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
// Program Files (x86) (it's okay if we're on 32-bit, we check if this folder exists first)
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + " (x86)",
// User/AppData/Roaming
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
};
foreach (string searchDir in searchDirs)
{
string androidDir = Path.Combine(searchDir, "Android");
if (Directory.Exists(androidDir))
{
string[] subDirs = Directory.GetDirectories(androidDir, "*sdk*", SearchOption.TopDirectoryOnly);
foreach (string subDir in subDirs)
{
string path = Path.Combine(subDir, uniqueFile);
if (File.Exists(path))
{
// found unique file at DIR/Android
return subDir;
}
}
}
}
// no luck finding SDK! :(
return null;
}
আমার এটি দরকার কারণ আমি অ্যান্ড্রয়েড স্টুডিও / গ্রেডলের সাথে কাজ করতে একটি সি # প্রোগ্রামে এক্সটেনশন লিখছি। আশা করি অন্য কেউ এই পদ্ধতিকে কাজে লাগবে।