I don't think there's a good reason to check first - just try to open, and fail if it's not there. (check and then open has a potential race condition, and is more code)