--- a/src/eric7/MicroPython/MicroPythonFileManager.py Mon Mar 06 11:39:26 2023 +0100 +++ b/src/eric7/MicroPython/MicroPythonFileManager.py Mon Mar 06 16:13:42 2023 +0100 @@ -216,6 +216,34 @@ except Exception as exc: self.error.emit("putData", str(exc)) + def writeFile(self, filename, text): + """ + Public method to write some text to a file on the connected device. + + @param filename name of the file on the connected device + @type str + @param text text to be written + @type str + @return flag indicating success + @rtype bool + """ + if self.__device.supportsLocalFileAccess(): + try: + with open(filename, "w") as f: + f.write(text) + return True + except OSError as exc: + self.error.emit("writeFile", str(exc)) + return False + else: + try: + self.__device.putData(filename, text.encode("utf-8")) + self.putDataDone.emit(filename) + return True + except Exception as exc: + self.error.emit("writeFile", str(exc)) + return False + @pyqtSlot(str) def delete(self, deviceFileName): """ @@ -531,6 +559,25 @@ self.error.emit("mkdir", str(exc)) @pyqtSlot(str) + def makedirs(self, dirname): + """ + Public slot to create a new directory and all intermediates. + + @param dirname name of the directory to create + @type str + """ + parts = [d for d in dirname.split("/") if bool(d)] + dname = "" + try: + for part in parts: + dname += "/" + part + if not self.__device.exists(dname): + self.__device.mkdir(dname) + self.createDirectoryDone.emit() + except Exception as exc: + self.error.emit("makedirs", str(exc)) + + @pyqtSlot(str) @pyqtSlot(str, bool) def rmdir(self, dirname, recursive=False): """