<p>Just two pennies: Can&#39;t you just say if the path is to an existing dir, it&#39;s a dir, else it&#39;s a file or an error.</p>