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

顶层 sdcard 文件夹。

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 结果的正则表达式模式。

public static final Pattern STAT_PATTERN

用于解析来自统计信息的相应结果的正则表达式模式。

公共构造函数

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

设备端文件分隔符。

常量值: "/"

刷新率

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

条目类型: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

条目类型:Socket

常量值: 6 (0x00000006)

字段

LS_LD_PATTERN

public static final Pattern LS_LD_PATTERN

LS_L_PATTERN

public static final Pattern LS_L_PATTERN

用于解析 ls 结果的正则表达式模式。

STAT_PATTERN

public static final Pattern STAT_PATTERN

用于解析 stat 结果的正则表达式模式。例如: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 以防 shell 命令在超过 maxTimeToOutputResponse 的时间内未发送任何输出。
如果连接出现 I/O 错误,则为 true。

getRoot

public FileListingService.FileEntry getRoot ()

返回根元素。

返回
FileListingService.FileEntry 表示根元素的 FileEntry 对象,如果设备无效,则为 null