diff --git a/arduino-core/src/processing/app/Sketch.java b/arduino-core/src/processing/app/Sketch.java index fa6a38bf041..6c417403ec9 100644 --- a/arduino-core/src/processing/app/Sketch.java +++ b/arduino-core/src/processing/app/Sketch.java @@ -351,13 +351,22 @@ public void saveAs(File newFolder) throws IOException { file.saveAs(new File(newFolder, file.getFileName())); } - folder = newFolder; // Copy the data folder (this may take a while.. add progress bar?) if (getDataFolder().exists()) { File newDataFolder = new File(newFolder, "data"); + // Check if data folder exits, if not try to create the data folder + if (!newDataFolder.exists() && !newDataFolder.mkdirs()) { + String msg = I18n.format(tr("Could not create directory \"{0}\""), newFolder.getAbsolutePath()); + throw new IOException(msg); + } + // Copy the data files into the new folder FileUtils.copy(getDataFolder(), newDataFolder); } + + // Change folder to the new folder + folder = newFolder; + } /**