java.awt.Desktop :: open()抛出错误"系统无法写入指定的设备"

时间:2014-12-21 01:02:33

标签: java desktop ioexception

我有生产代码,对于一个用户,这行代码不断抛出错误:

Desktop desktop = Desktop.getDesktop();
desktop.open(file);

日志文件将此显示为错误:

java.io.IOException: Failed to open C:\Users\flast\Desktop\spreadsheet.xls. Error message: The system cannot write to the specified device. 

我无法重现此错误,因此无法提供SSCCE。但是,任何人都可以解释为什么Desktop::open()会抛出这个错误?也就是说,为什么要写'#34;写"什么? Desktop::open()应该只找到关联的程序并打开文件。没有什么可写的。

值得注意的是:我在代码中实际捕获此错误并尝试使用Desktop::browse()

Desktop desktop = Desktop.getDesktop();
try {
    desktop.open(file);
} catch (IOException e) {
    handleError(e);
    desktop.browse(file.toURI());
}

browse()也会抛出错误:

Failed to open file:/C:/Users/flast/Desktop/spreadsheet.xls. Error message: Access is denied.

所以我很难过。

0 个答案:

没有答案