文件名中有双空格时无法打开文件
File cannot open when it has double spaces in file name
我正在尝试使用 java 程序打开图像,该程序的文件名不止一次 space。直接 windows 命令工作正常,但是当我通过 java 程序执行时它没有打开。
直接命令:
rundll32.exe shell32.dll ShellExec_RunDLL "C:\Logfiles\Client_Logfiles\Attachments44\image2 Copy.jpg"
通过java:(这不起作用)
p_fileName = "C:\Logfiles\Client_Logfiles\Attachments44\image2 Copy.jpg"
String cmd = "rundll32.exe shell32.dll ShellExec_RunDLL ";
Runtime.getRuntime().exec(cmd + "\""+p_fileName+"\"");
但是如果文件名有一个space,就可以正常打开:
请就此提出任何想法,感谢您的帮助。
试试:
p_fileName = "C:\Logfiles\Client_Logfiles\Attachments\1044\image2 Copy.jpg"
或者
p_fileName = "C:/Logfiles/Client_Logfiles/Attachments/1044/image2 Copy.jpg"
问题是你连接命令。
要使其正确使用 exec 的数组版本并使用 '/' 而不是 '\':
String args[] = {
"rundll32.exe",
"shell32.dll",
"ShellExec_RunDLL",
"C:/Logfiles/Client_Logfiles/Attachments/1044/image2 Copy.jpg"
};
Runtime.getRuntime().exec(args);
我正在尝试使用 java 程序打开图像,该程序的文件名不止一次 space。直接 windows 命令工作正常,但是当我通过 java 程序执行时它没有打开。
直接命令:
rundll32.exe shell32.dll ShellExec_RunDLL "C:\Logfiles\Client_Logfiles\Attachments44\image2 Copy.jpg"
通过java:(这不起作用)
p_fileName = "C:\Logfiles\Client_Logfiles\Attachments44\image2 Copy.jpg"
String cmd = "rundll32.exe shell32.dll ShellExec_RunDLL ";
Runtime.getRuntime().exec(cmd + "\""+p_fileName+"\"");
但是如果文件名有一个space,就可以正常打开:
请就此提出任何想法,感谢您的帮助。
试试:
p_fileName = "C:\Logfiles\Client_Logfiles\Attachments\1044\image2 Copy.jpg"
或者
p_fileName = "C:/Logfiles/Client_Logfiles/Attachments/1044/image2 Copy.jpg"
问题是你连接命令。 要使其正确使用 exec 的数组版本并使用 '/' 而不是 '\':
String args[] = {
"rundll32.exe",
"shell32.dll",
"ShellExec_RunDLL",
"C:/Logfiles/Client_Logfiles/Attachments/1044/image2 Copy.jpg"
};
Runtime.getRuntime().exec(args);