Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

Rated
Read 31,770 times

Contents

Related Categories

Getting System Folders Easily via API - System Directory

System Directory

The most important of all directories in my opinion is the System Directory. Its vital that you dont simply use "C:\Windows\System32" or something like that if you want to get your application to work in all platforms.

So heres another snippet for your enjoyment:

Option Explicit
Private Declare Function GetSystemDirectoryB Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal Path As String, ByVal cbBytes As Long) As Long
Private Const MAX_LENGTH = 512

Public Function GetWindowsSystemDirectory() As String
   Dim s As String
   Dim c As Long
   s = String$(MAX_LENGTH, 0)
   c = GetSystemDirectoryB(s, MAX_LENGTH)
   If c > 0 Then
       If c > Len(s) Then
           s = Space$(c + 1)
           c = GetSystemDirectoryB(s, MAX_LENGTH)
       End If
   End If
   GetWindowsSystemDirectory = IIf(c > 0, Left$(s, c), "")
End Function

So going back to our example used before, to read say the oohhhhh so important EULA from Microsoft for your Windoze operating system:

   Dim iFileNum As Integer
   Dim strEULA as string
   iFileNum = FreeFile
   Open GetWindowsSystemDirectory& "eula.txt" For Input As iFileNum
   strEULA = Input$(LOF(iFileNum), iFileNum)
   Close #iFileNum
   msgbox strEULA, vbCritical, "UnImportant Aggreement"


Click 'Next>>' and dont collect the $100...

Work Work Work
Currently I'm working at Vividas Pty Ltd and studying at Swinburne University. My time on DeveloperFusion is limited due to workloads on both parts, I do however keep a Blog that gets updated fairly regularly with lots of Techno-babble...

I also have a software business called WebSoftware Systems in Australia, the primary product we have at the moment is HotHTML which started life as a simple VB6 based HTML editor and is now a full blown text/web development IDE. I'm currently also working on the v4.0 release in .NET 2.0.

Comments

  • Temp path... the easy way

    Posted by svdoever on 23 Jul 2005

    When you need the Temp folder, the easy (and clean .Net way) is to use: Path.GetTempPath()

  • Posted by Thushan Fernando on 30 Aug 2003

    it will still work for change dpaths... i used TweakXP to try it out on a few VMs and it worked fine... as far as other languaegs go... i only get English versions of OS's from MS so i dont know what ...

  • Posted by boygenius on 30 Aug 2003

    so if the user changes their dir from say C:\WinNT\System32\ to C:\WindowsNT\System Files\ would i still be able to get the Windows DIR and System DIR?

    also what about foreign languages?

  • Posted by Thushan Fernando on 04 Jul 2002

    hey,

    sorry i couldnt reply earlier, I only saw my post now!

    thank-you for your kind words!

  • VERY USEFUL!

    Posted by MichaelMyAss on 21 Jun 2002

    Hey,

    I must say this is EXTREEMLY useful for a nutcase like myself!

    I infact had the exact problem you said most people have.

    Thanks alot! It really helps!