We need you!

We're working hard on the next version of Developer Fusion. Let us know what you think we should be up to!

Members

Technology Zones

Articles

Hosted By

MaximumASP

Info

Rated
Read 31,000 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!