Question

Would anyone be able to help me with how to get the file properties from a windows object, i.e., FileSize, FileType, Year, Label, DateModified,FileVersion. I have tried accessing the info in the FileInfo class and it appears it does not have all the necessary properties I'm looking for. Which other libraries could I use to access this information and if you could please provide examples, thank you

Was it helpful?

Solution

Some of that is already avaiable in FileInfo (Length is the file size, Date Modified is simply LastWriteTime). Some of the information is available from FileVersionInfo. The 'type' is kind of tricky, but this post has some info on looking the mime type up in the registry. This worked for me on windows 7:

private static string GetType(string fileName)
    {
        string type = "Unknown";
        string ext = System.IO.Path.GetExtension(fileName).ToLower();
        Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
        if (regKey != null && regKey.GetValue("") != null)
        {
            string lookup = regKey.GetValue("").ToString();
            if (!string.IsNullOrEmpty(lookup))
            {
                var lookupKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(lookup);
                if (lookupKey != null)
                {
                    type = lookupKey.GetValue("").ToString();
                }
            }
        }
        return type;
    }

It will produce the Type you see in detail tab page of the file properties. For example, 'Application' for exe and 'Bitmap Image' for bmp.

The answer here gets the type using the windows api function shgetfileinfo.

OTHER TIPS

Hey Check with MSDN : http://msdn.microsoft.com/en-us/library/system.io.file.aspx

Example

GetCreationTime ()
GetLastWriteTime ()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top