src/eric7/MicroPython/MicroPythonFileManager.py

branch
eric7
changeset 9853
080e060a0383
parent 9852
b7aef103355a
child 10019
e56089d00750
--- 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):
         """

eric ide

mercurial