private File getOrCreateLocalFile(File file) throws IOException {
   synchronized (localInputFiles) {
     File localFile = (File) localInputFiles.get(file);
     if (localFile == null) {
       localFile = FileTool.getInstance().generateNewWorkingFile(null, "java", "ftpin", true);
       this.localInputFiles.put(file, localFile);
       FileTool.getInstance()
           .copy(
               getFileInputStream(file),
               FileSystemManager.getFileOutputStream(localFile),
               true,
               true);
       FileSystemManager.deleteOnExit(localFile);
     }
     return localFile;
   }
 }