The "program stops" because a library error was generated trying to open a non-existent file and CVI, by default, breaks on library errors.
FileExists() helps you avoid the file-not-found fopen error. But also look at SetBreakOnLibraryErrors() to avoid breaking on library errors. SetBreakOnLibraryErrors() controls how CVI deals with any library error, not just file-not-found. Be sure to check for errors in your own code if you do disable Break on Library Errors: don't just ignore them. I typically disable Break on Library Errors only on code where a Library error may be expected under some conditions (for example, trying to open a non-existant file).
// disable break on Library Errors
prevBreak = SetBreakOnLibraryErrors (0);
fpMyFile = fopen ("nofile", "r");
// restore previous state of break on Library Errors
SetBreakOnLibraryErrors (prevBreak);
if (fpMyFile != NULL)
{
// process file
// ...
fclose(fpMyFile);
}