Pelo que entendi você quer pegar o nome original de um upload de arquivo para um servidor. Nesse caso o que você tem é o nome do arquivo como ele foi salvo durante o upload no servidor. O File nada mais é do que uma classe que referencia um arquivo exatamente como ele está no filesystem, ele não vai ter conhecimento do nome do arquivo na máquina do usuário que fez upload. Para conseguir o nome original ele tem que ser passado do cliente para o servidor e você tem que pegar ele da requisição.
Tudo isso que falei depende muito do framework que você está utilizando. Numa aplicação web clássica usando VRaptor 3, por exemplo, basta usar no método de upload do controlador a classe UploadedFile, ela possui um método que retorna a stream do arquivo e outro que retorna o nome original do arquivo, isto é, não existe um esforço real por parte do programador, está tudo encapsulado.