java.nethardwaredisk-smart

Is there a S.M.A.R.T. Library for .NET or Java?


I asked a somewhat related question but I want it to make it more concrete and 'programming' oriented, so here it goes:

Does any body know, if there is a .NET, JAVA or any other Framework, library, .jar file or what ever: to access S.M.A.R.T. Statistics?

Thanks!


Solution

  • You can get SMART statistics from .Net via the System.Management and WMI class "MSStorageDriver_ATAPISmartData".

    Here is a short example that I created for you. Start a new console project and add a reference to the System.Management assembly, then paste this into Program.cs:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Management;
    
    namespace GetSMART
    {
        class Program
        {
            static void Main(string[] args)
            {
                ManagementObjectSearcher searcher = 
                new ManagementObjectSearcher(
                    "root\\WMI",
                    "SELECT * FROM MSStorageDriver_ATAPISmartData"
                );
    
                foreach (ManagementObject item in searcher.Get())
                {
                    foreach( PropertyData prop in item.Properties )
                    {
                    Console.WriteLine("{0} = {1}",
                        prop.Name, prop.Value);
                    }
                }
    
                Console.ReadLine();
            }
        }
    }