# 上傳檔案到micro:bit

在這裡講的不是把我們編寫好的MicroPython程式編譯成HEX檔案之後再上傳到micro:bit上執行，而是把一些其它的檔案，包括程式檔案、圖形檔案、或是資料檔案上傳到micro:bit上以備程式之需。

在之前的教學中，我們做的都是編寫micro:bit板子上唯一要被執行的程式腳本，然而，在一些程式執行的過程中可能會額外用到其它的資源檔案，或是引入其他人寫好的程式模組，此時就需要以另外的方式把這些會用到的資源檔、資料檔、或是模組程式檔案上傳。這些檔案可以選擇在 Mu Editor中的檔案功能來檢視及管理在micro:bit上的檔案，或是利用Python模組microfs來操作。先來說明後者，首先，請先在自己的電腦中的Python環境裡執行以下的安裝程序：

```
pip install microfs
```

順利安裝完成之後，即可利用ufs指令列示出目前在micro:bit上的所有的檔案：

```
ufs ls
```

如果你輸入ufs而不加上任何參數的話，會有如下所示的使用說明：

```
c:\>ufs
usage: ufs [-h] [command] [path] [target]

Interact with the basic filesystem on a connected BBC micro:bit device. You
may use the following commands: 'ls' - list files on the device (based on the
equivalent Unix command); 'rm' - remove a named file on the device (based on
the Unix command); 'put' - copy a named local file onto the device just like
the FTP command; and, 'get' - copy a named file from the device to the local
file system a la FTP. For example, 'ufs ls' will list the files on a connected
BBC micro:bit.

positional arguments:
  command     One of 'ls', 'rm', 'put' or 'get'.
  path        Use when a file needs referencing.
  target      Use to specify a target filename.

optional arguments:
  -h, --help  show this help message and exit
```

從上面的說明可以看到，它提供了ls、rm、put、以及get等四個命令，其中 ls用來列出所有在micro:bit上的檔案；rm用來刪除在micro:bit上的檔案；put可以把目前資料夾中的檔案上傳到micro:bit；get則是把檔案從micro:bit中取出。假設我們要上傳的檔案名稱是ssd1306.py，則上傳的方式如下：

```
C:\>ufs put ssd1306.py
```

請留意，上述的指令中，C:\\>是命令提示字元，不需要輸入喔。

另外一個操作 micro:bit檔案的方式是利用Mu Editor的File（文件）功能。當你如下圖箭頭所指的地方按下File（文件）按鈕時：

![](https://2988174335-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LMo8UCGGycRFYs2Gx9M%2F-Lel8gcAlvMCYPKTFjB-%2F-LelC3zsn0EiFJ8OIoX3%2F2019-05-13_20-38-08.png?alt=media\&token=a46b7f30-bd16-4741-974a-ea005e9f1ada)

在編輯器的下方即出現了兩個額外的視窗，左側的內容即為micro:bit上除了主程式之外的檔案，而右側則是在你的電腦中位於mu\_code資料夾之下的所有檔案，你可以在兩個視窗間拖曳檔案，即可執行檔案上傳或下載的作業。
