Whenever you use File Functions, you should use full pathing so you always know exactly where you're dealing with files.
GetCurrentDirectory() will return the current location the app is pointed to, NOT the app path. At app startup, Current Directory will be the same as App Path, but there's no guarantee it will stay there if there are any Open/Save file operations being used where user input is given.
FileExists, FileOpen, GetFileOpenName, GetFileSaveName, DirList, DirSelect, DirectoryExists and any other File oriented operation (include import/export of datawindow data) will always default to the "Current Directory".
If a user has changed directory (to save/open a file in an alternate place), current directory will be that alternate place unless you have called ChangeDirectory() to set it back to a known location.
edit: I did recall one other thing. If the app starting directory is different than the app location on a shortcut, that will be the starting default directory.