QPython 3C 的 SL4A 函數(shù) - 外置卡讀寫
外置卡讀寫函數(shù)(新增):
documentTreeShowOpen( rootPath = '/sdcard' )?(推薦)
documentFileShowOpen( rootPath =? '/sdcard' )
外置卡打開目錄樹(根路徑(默認為"/sdcard"))。
以上倆函數(shù)功能相同,都是:
打開外置存儲卡寫入或者"/sdcard/Android/<子目錄>"讀寫權(quán)限請求窗口。
如果授權(quán)成功,返回Uri路徑 , 如果授權(quán)失敗,返回None 。
使用這兩個函數(shù)和以下函數(shù),讀寫外置存儲設備或者"/sdcard/Android/<子目錄>" ,
documentFile類函數(shù)速度非常慢。
1.對于外置存儲設備 :
? 使用 rootPath = "/storage/ABCD-EFGH" 或者 "/mnt/ext_sdcard" , 返回 "content://com.android.externalstorage.documents/<Content子路徑>" .
2.對于"/sdcard/Android/<子路徑>" :
? ??(1) 在 Android? 7-10 , 使用 rootPath = "/sdcard/Android/data"?, 返回 "file://<路徑>" ;
? ? (2) 在 Android 11-13 , 使用 rootPath = "/sdcard/Android/data/the.package.name" , 返回 "content://com.android.externalstorage.documents/<Content子路徑>" 。
documentFileMkdir( Dir )?(推薦)
documentFileMkdirs( Dir )
外置卡新建一級/多級文件夾(文件夾路徑)。
以上倆函數(shù)功能相同。
如果成功返回True。
documentFileCopy( SrcFileOrTree, DestFileOrTree?)
外置卡復制單個文件/目錄樹(源,目標)
返回None。
documentFileRenameTo( Src, Dest )?(推薦)
documentFileMoveTo( Src, Dest )
移動或重命名_文件或目錄樹(源路徑,目標路徑)。
以上倆函數(shù)功能相同。
documentFileDelete( FileOrTree )
外置卡刪除(文件或目錄樹)
如果成功返回True。
documentFileListFiles( Folder )
外置卡獲取文件列表(目錄)
返回目錄的文件列表。
documentFileIsDirectory(path)
外置卡路徑是否為目錄(路徑),
如果路徑不存在或不可用,將返回None。
documentFileGetUri(path,?isDirectory?=?None)
外置卡根據(jù)指定路徑返回?"content://com.android.externalstorage.documents/<Content路徑>"。
路徑(字符串)
是否目錄(布爾可選):
? ? True?-?必須是一個目錄,如果目錄不存在,將會自動創(chuàng)建一個空目錄;
? ? False?-?必須不是一個目錄,如果文件不存在,將會創(chuàng)建一個空文件;
? ? None?-?不知道它是否是個目錄,如果不存在,也不會創(chuàng)建任何東西。
documentFileInputStream( srcFile, EncodingFormat )
外置卡讀取文件(源文件名,編碼格式)
如果編碼格式被省略(默認為空),這個函數(shù)返回Bytes;
如果編碼格式是Base64,這個函數(shù)返回Base64字符串;
如果編碼格式是UTF-8或GBK等,這個函數(shù)返回普通字符串。
documentFileOutputStream( destFile, src, EncodingFormat )
外置卡寫入文件(目標文件,源數(shù)據(jù),編碼格式)
如果編碼格式被省略(默認為空),源數(shù)據(jù)是Bytes;
如果編碼格式是Base64, 源數(shù)據(jù)是Base64字符串;
如果編碼格式是UTF-8或GBK等,源數(shù)據(jù)是普通字符串;
這個函數(shù)總是返回None。
documentFileGetStat(path)
外置卡獲取文件統(tǒng)計信息(路徑)。
返回一個dict,包含文件大小、上次修改時間、文件是否可讀寫。
如果路徑不存在或不可用,返回None。
getFileStat(path)
獲取文件統(tǒng)計信息(路徑)。
包含內(nèi)部存儲和外置卡,返回一個dict,包含文件大小、上次修改時間、文件是否可讀寫和所在存儲器空間。
獲取外置卡寫入權(quán)限后,documentFileGetStat的canWrite屬性為True,不可獲取存儲器空間;但是getFileStat的canWrite屬性為False,可以獲取存儲器空間。
示例(Android 13):
QPython 3C -- 項目和腳本 -- Media_QPy --應用列表

選擇“電話本” -- 查看根文件

授權(quán)“允許”

即可看到Android/data下的content://路徑,即授權(quán)成功

訪問"/sdcard/Android/data/the.package.name"視頻演示:
https://www.bilibili.com/BV1694y1G7jF
QPython 3C (Python 3.11) 視頻演示:
https://www.bilibili.com/BV1NL411G7XX
如果需要 QPython 3C 源代碼/Apk,請點擊以下鏈接:
作者:乘著船@Bilibili
更多文章+下載鏈接:https://www.bilibili.com/read/readlist/rl321663