Hallo Jack,
Für die Differenz habe ich (noch) keine Erklärung.
Allerdings ist mir eine Doppel-/Dreifachanweisung aufgefallen.
Mit dem Befehl
getFiles() ermittelst Du File-Objekte.
Aus diesen File-Objekten machst Du ein weiteres File-Objekt (selFile) und dieses später nochmals zu einem weiteren File-Objekt (File(selFile).
Möglicherweise stört das nicht (wie Dein zweites Beispiel nahelegt), ist aber auch nicht ganz korrekt.
Laß mal die weiteren File-Deklarationen weg.