- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
1.3 @@ -89,9 +89,6 @@
1.4 public void openFile(File f) {
1.5 try {
1.6 Desktop.getDesktop().open(f);
1.7 -// String s = "cmd /c \"" + f.getAbsolutePath() + "\" ";
1.8 -// System.out.println(s);
1.9 -// java.lang.Process p = Runtime.getRuntime().exec(s);
1.10 }
1.11 catch (Exception e) {
1.12 JOptionPane.showMessageDialog(null, "Ошибка при открытии файла", "Ошибка", JOptionPane.ERROR_MESSAGE);
1.13 @@ -112,21 +109,6 @@
1.14 temp.mkdir();
1.15 }
1.16 String fName = entry.getName();
1.17 - fName = fName.replaceAll("\\&", "_");
1.18 - fName = fName.replaceAll("\\(", "_");
1.19 - fName = fName.replaceAll("\\)", "_");
1.20 - fName = fName.replaceAll("\\[", "_");
1.21 - fName = fName.replaceAll("\\]", "_");
1.22 - fName = fName.replaceAll("\\{", "_");
1.23 - fName = fName.replaceAll("\\}", "_");
1.24 - fName = fName.replaceAll("\\^", "_");
1.25 - fName = fName.replaceAll("\\=", "_");
1.26 - fName = fName.replaceAll("\\!", "_");
1.27 - fName = fName.replaceAll("\\`", "_");
1.28 - fName = fName.replaceAll("\\+", "_");
1.29 - fName = fName.replaceAll("\\~", "_");
1.30 - fName = fName.replaceAll(" ", "_");
1.31 - fName = fName.replaceAll(("№"), "_");
1.32 String dnFileName = temp.getName() + File.separator + fName;
1.33
1.34 File dlFname = new File(dnFileName);
Так как открытие файла происходило весьма оригинальным образом через cmd.exe - вполне логично было написано фильтрование символов, неперевариваемых этой cmd.exe.
Как видно - задача решалась одной строкой - " Desktop.getDesktop().open(f);".