我尝试使用以下代码截取屏幕截图
public void TakeScreenShot() {
String ScreenPrefix = "Screenshot-";
String Time = getTime();
try {
File ScreenName = new File(ScreenPrefix+Time+".png");
BufferedImage image = new Robot().createScreenCapture(new Rectangle(getGameScreen()));
ImageIO.write(image, "PNG", new File(System.getProperty("user.home") + "\\Desktop\\ScreenShots\\"+ScreenName));
JOptionPane.showMessageDialog(null, ScreenName+".png has been saved to your desktop", "Console", JOptionPane.PLAIN_MESSAGE);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
如果我使用getTime();方法我得到以下错误:
java.io.FileNotFoundException: C:\Users\Evan\Desktop\ScreenShots\Screenshot-19:30:14 (The filename, directory name, or volume label syntax is incorrect)
但如果我改变
File ScreenName = new File(ScreenPrefix+Time);
到
File ScreenName = new File(ScreenPrefix);
它工作得很好,它不包括截图的时间。
如果有人知道如何让代码创建文件"截图 - 小时:分钟:秒" 并且愿意分享,这将是非常受欢迎的
(如果你能告诉我为什么我会收到这个错误,那么它也会非常有帮助)
如果您需要,请使用我的getTime()方法:
public static String GetTime() {
Calendar cal = Calendar.getInstance();
cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
return sdf.format(cal.getTime());
}
我确实有路径" C:\ Users \ Evan \ Desktop \ Screenshots"所以,我不知道为什么它告诉我当我试图把时间包括在内时,因为没有它就可以正常工作
答案 0 :(得分:0)
您需要编辑要保存的文件的名称,使其不包含特殊字符。
该错误表示您尝试创建的文件无效。