Just to illustrate the point of destructuring more clearly: the FullForm of {path, fileName} is List[path, fileName], and h[path, fileName] is just a generalization of this. It empasizes the point that you don't have to use the Head List, you can use any Head.
Things like this are very difficult to understand for me, at least for now. For the sake of clarity, let me express my confusion with the following example:
In[49]:= Clear[a, x, y, b]
{a, List[x, y], b}
{a, {x, y}, b}
{a, Sequence[x, y], b}
{a, h[x, y], b}
Out[50]= {a, {x, y}, b}
Out[51]= {a, {x, y}, b}
Out[52]= {a, x, y, b}
Out[53]= {a, h[x, y], b}
As you can see, after the destructuring, I got three different results.