Question

I would like to know to know the code in Java that that will help perform the same operation as that of a double click in any OS on a file making it open and thereby enable us to view its contents when the user supplies the location of the file in his/her PC. Any suggestion would be of great help as i need it to finish my application.

Was it helpful?

Solution

OTHER TIPS

I used the following code. On windows, you will get a windows file open dialog if no program is associated with the file type. If it does not run on windows, it falls back to Desktop.open(), which works if the file type is known to the system.

public static boolean openFile(File file){
  try {
    if (System.getProperty("os.name").contains("Windows")) {
      Runtime.getRuntime().exec(
          "rundll32 SHELL32.DLL,ShellExec_RunDLL " + file.getAbsolutePath());
    } else if (Desktop.isDesktopSupported()) {
      Desktop.getDesktop().open(file);
    } else {
      return false;
    }
    return true;
  } catch (final Exception e1) {
    System.err.println("Error opening file " + file, e1);
    return false;
  }
}

in windows xp:

rundll32 shell32.dll,ShellExec_RunDLL "file:///d:\download\theapp.lnk"

you could add registry so that you could run lnk file in RUN dialog box and folder cruiser:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile\shell]

[HKEY_CLASSES_ROOT\lnkfile\shell\edit]

[HKEY_CLASSES_ROOT\lnkfile\shell\edit\command]
@="rundll32 shell32.dll,ShellExec_RunDLL \"file:///%1\""
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top