Well...yes. Why are you surprised?
When you specify a folder directly:
g.LoadFromFile("C:\\Users\\...\\kv.rdf");
you are saying where the file is.
When you reference it via MapPath from the File Upload control, all you get is teh file name: no path information (because you can't access the client hard drive at all and so the folder info isn't transferred fro security reasons).
So
MapPath("myFile.rdf")
will give you the equivilent of:
@".\myFile.rdf"
Where "." is the current folder as defined by the location of the current web page. If you haven;t explicitly saved the file there, the file will not be found...
Most likely, you want to use something like:
MapPath(@"~\Files\RDF\myFile.rdf")
Which will return a "Proper" path based on your website folder structure.