<i>You can do a &quot;dir.listFiles()&quot; and iterate it, and find that some of the entries are impossible to open because there is no way to represent the ISO-8859-1 bytes that make up the filename in a String object, and therefore no way to give the correct file name to the java io classes for opening.</i><p>That gives more weight to the argument that character encodings should be entirely a &quot;presentation-layer&quot; concern, and anything below that should treat strings as opaque byte sequences. There should also be a way to bypass that &quot;presentation layer&quot; transformation upon input.