• 0

[VB.NET] Get File type by extension


Question

Hello gang,

Writing a little app to help users to create projects of files related to other files (rather simple, I know) and while I can get the associated icon via the "ExtractAssociatedIcon" function I cannot find a way to get the File's document type by it's association. For example if you look at the status bar of the Windows Explorer you can see "Adobe Photoshop Image" when I select a PSD file.

Any ideas?

post-45653-0-70870700-1305577789.jpg

Link to comment
https://www.neowin.net/forum/topic/997870-vbnet-get-file-type-by-extension/
Share on other sites

7 answers to this question

Recommended Posts

  • 0
  On 17/05/2011 at 11:30, mute~ said:

Is this of any help?

Private Function lol(ByVal extension As String) As String
        Dim readValue As String
        readValue = My.Computer.Registry.GetValue _
        ("HKEY_CLASSES_ROOT\" & extension, "", "ExtensionNotFound")
        Return readValue
End Function

Thanks, that kind of works, I was hoping for a native function as this returns a badly formatted string. eg: ".doc" returns "Word.Document.8"

But thanks, it is something. Have a great day.

  • 0
  On 17/05/2011 at 12:32, jameswjrose said:

Thanks, that kind of works, I was hoping for a native function as this returns a badly formatted string. eg: ".doc" returns "Word.Document.8"

But thanks, it is something. Have a great day.

Yeah sorry, best I could think of while trying to navigate ;)

Will have a think about it when I get back on Monday if no-one has solved it before then.

  • 0
  On 18/05/2011 at 11:34, mute~ said:

Yeah sorry, best I could think of while trying to navigate ;)

Will have a think about it when I get back on Monday if no-one has solved it before then.

Please, do not apologize. Thank you very much for an answer! Have a great week.

  • 0
  On 17/05/2011 at 12:32, jameswjrose said:

Thanks, that kind of works, I was hoping for a native function as this returns a badly formatted string. eg: ".doc" returns "Word.Document.8"

But thanks, it is something. Have a great day.

Then use that string to get it, eg HKEY_CLASSES_ROOT\Word.Document.8 and it has "Microsoft Office Word 97 - 2003 Document" as the default value.

  • Like 1
  • 0

Hi,

Managed to find some free time, hope this is more helpful:

    Public Shared Function GetFileExtType(ByVal fileExtension As String) As String
        Dim FileExtensionName As String = ""

        For Each subKey As String In Registry.ClassesRoot.GetSubKeyNames()
            If String.IsNullOrEmpty(subKey) Then
                Continue For
            End If

            If subKey.CompareTo(fileExtension) = 0 Then
                Dim defaultValue As String = Registry.ClassesRoot.OpenSubKey(subKey).GetValue("").ToString()

                If defaultValue.Length = 0 Then
                    Exit For
                End If

                If FileExtensionName.Length = 0 Then
                    FileExtensionName = defaultValue
                    fileExtension = FileExtensionName
                Else
                    If defaultValue.Length > 0 Then
                        FileExtensionName = defaultValue
                    End If
                    Exit For
                End If
            End If
        Next
        Return FileExtensionName
    End Function

  • 0
  On 19/05/2011 at 19:01, mute~ said:

Hi,

Managed to find some free time, hope this is more helpful:

    Public Shared Function GetFileExtType(ByVal fileExtension As String) As String
        Dim FileExtensionName As String = ""

        For Each subKey As String In Registry.ClassesRoot.GetSubKeyNames()
            If String.IsNullOrEmpty(subKey) Then
                Continue For
            End If

            If subKey.CompareTo(fileExtension) = 0 Then
                Dim defaultValue As String = Registry.ClassesRoot.OpenSubKey(subKey).GetValue("").ToString()

                If defaultValue.Length = 0 Then
                    Exit For
                End If

                If FileExtensionName.Length = 0 Then
                    FileExtensionName = defaultValue
                    fileExtension = FileExtensionName
                Else
                    If defaultValue.Length > 0 Then
                        FileExtensionName = defaultValue
                    End If
                    Exit For
                End If
            End If
        Next
        Return FileExtensionName
    End Function

Thanks, you're too kind. It works perfectly.

If you care, here is the app it is going into: Blissgig.com: b.Link

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • To be fair, I haven't seen a BSOD since years ago, seriously. Windows has been pretty stable for me always.
    • Nobody is "shoving" anything down anybody's throats. The feature is turned off by default, so the user needs to explicitly enable it. How is that "shoving down" anything? Again: this is OPT-IN. If you don't like the feature for whatever reason, just ignore it or turn it off if you already enabled it.
    • Kioxia is Toshiba rebranded? Did not know that. 
    • I use to buy only Samsung and Crucial MX but things have change a lot in the last 5 years.   Western Digital Black ssd are very good. Corsair MP too (specially when it comes to gen 5) The Patriot 2TB Viper VP4300 Lite is a good cheap option with decent perf Crucial Txxx is pretty good too. I had bad exp with TeamGroup when they initially came out but i bought two TEAMGROUP T-Force Vulcan Z 2TB SLC Cache for my new computer because they were the cheapest 2 tb with any kind of cache and i've been pleasantly surprised.   You got to do your own research. Does it have dram cache? If yes which type of dram cache. Does it have a large SLC cache? If so how large is it? 20% of the drive? 30% of the drive? For example the TG 2TB i posted above has a 650GB SLC cache which is about 30% of the drive capacity. Is it TLC or QLC. I'd avoid QLC drive without any type of cache unless it's for storage they tend to perform badly with small writes. I'm not an expert so do your own research  https://www.techpowerup.com/ , https://www.tweaktown.com/ and https://www.tomshardware.com/ are usually good sources to know the real spec of a ssd and nvme specially the cache since a lot of manufacturer are not clear about this.
  • Recent Achievements

    • Week One Done
      SmileWorks Dental earned a badge
      Week One Done
    • Community Regular
      vZeroG went up a rank
      Community Regular
    • Collaborator
      Snake Doc earned a badge
      Collaborator
    • Week One Done
      Snake Doc earned a badge
      Week One Done
    • One Month Later
      Johnny Mrkvička earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      582
    2. 2
      Michael Scrip
      199
    3. 3
      ATLien_0
      198
    4. 4
      +FloatingFatMan
      129
    5. 5
      Xenon
      125
  • Tell a friend

    Love Neowin? Tell a friend!