title: Case-insensitive File.equals on case-sensitive file system
body: <p>I have a file path in String form. In Java, I need to determine if that file exists on the file system (and our code needs to be cross-platform as it runs on Windows, Linux and OS X).</p>
  
  <p>The problem is that the case of the file path and the file itself may not match, even though they do represent the same file (presumably this is because they originated on Windows and the discrepancy was not noticed).</p>
  
  <p>For example, I have a file path of "ABC.txt". A file called "abc.txt" exists on the file system. The following code will return <strong>true</strong> on Windows but <strong>false</strong> on Linux:</p>
  
  <pre><code>new File("ABC.txt").exists();
  </code></pre>
  
  <p>What is the best way to determine if the file exists, and if it exists to return a handle to the file on the file system?</p>