FileListingService

public final class FileListingService
extends Object

java.lang.Object
   ↳ com.android.ddmlib.FileListingService


提供 IDevice 側邊檔案清單服務。

摘要

巢狀類別

class FileListingService.FileEntry

代表目錄中的項目。 

interface FileListingService.IListingReceiver

實作這個介面的類別會提供方法,處理裝置上 ls 指令的非同步結果。 

常數

String DIRECTORY_APP

應用程式資料夾。

String DIRECTORY_DATA

頂層資料夾。

String DIRECTORY_MNT

頂層掛接資料夾。

String DIRECTORY_SDCARD

頂層 SD 卡資料夾。

String DIRECTORY_SYSTEM

頂層系統資料夾。

String DIRECTORY_TEMP

頂層暫存資料夾。

String FILE_SEPARATOR

裝置端檔案分隔符號。

long REFRESH_RATE

int TYPE_BLOCK

項目類型:封鎖

int TYPE_CHARACTER

項目類型:字元

int TYPE_DIRECTORY

項目類型:目錄

int TYPE_DIRECTORY_LINK

項目類型:目錄連結

int TYPE_FIFO

項目類型:FIFO

int TYPE_FILE

項目類型:檔案

int TYPE_LINK

項目類型:連結

int TYPE_OTHER

項目類型:其他

int TYPE_SOCKET

項目類型:通訊端

欄位

public static final Pattern LS_LD_PATTERN

public static final Pattern LS_L_PATTERN

用來剖析 ls 結果的 Regexp 模式。

public static final Pattern STAT_PATTERN

用來剖析統計資料結果的 Regexp 模式。

公用建構函式

FileListingService(IDevice device)

為指定的 IDevice 建立檔案清單服務。

公用方法

FileEntry[] getChildren(FileListingService.FileEntry entry, boolean useCache, FileListingService.IListingReceiver receiver)

傳回 FileEntry 的子項。

FileEntry[] getChildrenSync(FileListingService.FileEntry entry)

傳回 FileEntry 的子項。

FileListingService.FileEntry getRoot()

傳回根元素。

常數

DIRECTORY_APP

public static final String DIRECTORY_APP

應用程式資料夾。

常數值: "app"

DIRECTORY_DATA

public static final String DIRECTORY_DATA

頂層資料夾。

常數值: "data"

DIRECTORY_MNT

public static final String DIRECTORY_MNT

頂層掛接資料夾。

常數值: "mnt"

DIRECTORY_SDCARD

public static final String DIRECTORY_SDCARD

頂層 SD 卡資料夾。

常數值: "sdcard"

DIRECTORY_SYSTEM

public static final String DIRECTORY_SYSTEM

頂層系統資料夾。

常數值: "system"

DIRECTORY_TEMP

public static final String DIRECTORY_TEMP

頂層暫存資料夾。

常數值: "tmp"

FILE_SEPARATOR

public static final String FILE_SEPARATOR

裝置端檔案分隔符號。

常數值: "/"

REFRESH_RATE

public static final long REFRESH_RATE

常數值: 5000 (0x0000000000001388)

TYPE_BLOCK

public static final int TYPE_BLOCK

項目類型:封鎖

常數值: 3 (0x00000003)

TYPE_CHARACTER

public static final int TYPE_CHARACTER

項目類型:字元

常數值: 4 (0x00000004)

TYPE_DIRECTORY

public static final int TYPE_DIRECTORY

項目類型:目錄

常數值: 1 (0x00000001)

public static final int TYPE_DIRECTORY_LINK

項目類型:目錄連結

常數值: 2 (0x00000002)

TYPE_FIFO

public static final int TYPE_FIFO

項目類型:先進先出

常數值: 7 (0x00000007)

TYPE_FILE

public static final int TYPE_FILE

項目類型:檔案

常數值: 0 (0x00000000)

public static final int TYPE_LINK

項目類型:連結

常數值: 5 (0x00000005)

TYPE_OTHER

public static final int TYPE_OTHER

項目類型:其他

常數值: 8 (0x00000008)

TYPE_SOCKET

public static final int TYPE_SOCKET

項目類型:插座

常數值: 6 (0x00000006)

欄位

LS_LD_PATTERN

public static final Pattern LS_LD_PATTERN

LS_L_PATTERN

public static final Pattern LS_L_PATTERN

用於剖析 ls 結果的 Regexp 模式。

STAT_PATTERN

public static final Pattern STAT_PATTERN

用於剖析 stat 結果的 Regexp 模式。例如:drwxr-xr-x root root 2021-08-02 09:20:53.000000000 -0700 4096 /

公用建構函式

FileListingService

public FileListingService (IDevice device)

為指定的 IDevice 建立檔案清單服務。

參數
device IDevice:服務連線的裝置。

公用方法

getChildren

public FileEntry[] getChildren (FileListingService.FileEntry entry, 
                boolean useCache, 
                FileListingService.IListingReceiver receiver)

傳回 FileEntry 的子項。

這個方法支援快取機制,以及同步和非同步模式。

如果 receivernull,裝置端 ls 指令會同步完成,方法會在指令完成時傳回。
如果 receiver 不是 null,指令會在獨立執行緒中啟動,完成後,接收者會收到結果通知。

每個 ls 指令的結果都會快取在父項 FileEntry 中。useCache 允許使用這個快取,但前提是快取有效。快取僅在 FileListingService.REFRESH_RATE 毫秒內有效。之後一律會執行新的 ls 指令。

如果快取有效且為 useCache == true,無論是否提供 IListingReceiver,這個方法一律只會傳回快取的值。

參數
entry FileListingService.FileEntry:父項項目。

useCache boolean:使用快取或強制執行新 ls 指令的旗標。

receiver FileListingService.IListingReceiver:非同步呼叫的接收器。

傳回
FileEntry[] 非同步呼叫的子項清單或 null

getChildrenSync

public FileEntry[] getChildrenSync (FileListingService.FileEntry entry)

傳回 FileEntry 的子項。

這個方法是 getChildren(com.android.ddmlib.FileListingService.FileEntry, boolean, com.android.ddmlib.FileListingService.IListingReceiver) 的明確同步版本。這大致等同於呼叫 getChildren(FileEntry, false, null)

參數
entry FileListingService.FileEntry:父項項目。

傳回
FileEntry[] 孩子清單

擲回
TimeoutException 如果傳送指令時連線逾時。
AdbCommandRejectedException 如果 adb 拒絕該指令。
ShellCommandUnresponsiveException 如果殼層指令在超過 maxTimeToOutputResponse 的時間內未傳送任何輸出內容。
如果連線發生 I/O 錯誤。

getRoot

public FileListingService.FileEntry getRoot ()

傳回根元素。

傳回
FileListingService.FileEntry 代表根元素的 FileEntry 物件,或裝置無效時的 null