Я думаю, что то, что у вас есть, вероятно, примерно так же хорошо, как вы получите (хотя ваши комментарии обратны тем, какими они должны быть). Есть много вещей, которые могут помешать открытию файла: права доступа, что-то еще удерживающее его открытым, нехватка ресурсов и т. Д.
Чтобы точно пройти все эти проверки, вы можете просто открыть вещь.
Однако учтите также, что в большинстве систем то, что вы возвращаете, может быть ложью для вызывающей стороны - к тому времени, как вы вернули указание вызывающей стороне о том, можно ли открыть файл или нет, о состоянии систем может измениться (например, что-то, что удерживало открытый файл, может закрыть его). Таким образом, единственный действительно эффективный способ узнать, могут ли они открыть и использовать файл, - это просто открыть и использовать файл (и обработать все ошибки).
Другими словами, если вы вернете '1007 *' своему абоненту, он может попытаться открыть файл, и он все равно может потерпеть неудачу.