# 上傳檔案到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資料夾之下的所有檔案，你可以在兩個視窗間拖曳檔案，即可執行檔案上傳或下載的作業。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nkust.gitbook.io/micro-bit/shang-an-dao-microbit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
