Sergey has some good links, you should review them.
Another option for finding the path of your programs file is to use the "My" Namespace
Like this to get the path to the Program for where it was started from.
Dim CurrentLocation As String
CurrentLocation = My.Computer.FileSystem.CurrentDirectory
As far as the Current User Directory.
There is no Special Folder in System.Environment.SpecialFolder for the C:\Users\[Current User] in .Net 3.5
I generally did something like this
Dim CurUser As String
CurUser = System.Environment.UserName
Dim fullPath As String = "C:\Users\" & CurUser
MsgBox(fullPath)
There are two problems with this way that I can think of at the moment.
If the Username was changed then it will not match the name that is mapped to the folder It will be the name that the account was originally created with.
In my test case the original name would be something like "B", When it should have been "Bill" So the folder maps to "B" and the user name is "Bill".
If you use this on Vista or higher it will work. If you try and use it on XP then it will fail because of the path difference in XP and Vista.You would also need to add code to detect what OS you are on to Use the Correct Path For the Correct OS.
In order to get around the those problems of the username changed and OS Version I just came up with this.(watch the word wrap here)
Dim userpath As String
userpath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim trimmed() As String
trimmed = userpath.Split("\")
Dim ns As String
ns = trimmed(0) & "\" & trimmed(1) & "\" & trimmed(2)
MsgBox(ns)
This code works on a (Vista) system that had the Username changed.
I also tested on a XP virtual machine and it works there too.
I hope this helps.