Files
Files对象提供了文件操作相关的功能,包括文件读写、移动、复制、删除、目录操作等。
注意:Files对象不能操作系统的所有目录和文件,默认只允许操作当前应用的私有目录
如果你想操作媒体文件(如:相册),请使用MediaFiles对象。
read(path)
参数: path {string} 文件路径
返回: {string | null} 文件内容,如果失败返回null
读取文件内容,返回文件的所有文本内容。
let filesPath = Files.getFilesPath();
let content = Files.read(filesPath + "/test.txt");
if (content !== null) {
console.log(content);
}write(path, content)
参数:
path {string}文件路径content {string}要写入的内容
返回: {boolean} 成功返回true,失败返回false
写入内容到文件。如果文件不存在会自动创建,如果文件存在则会覆盖原有内容。
let success = Files.write("/sdcard/test.txt", "Hello DeekeScript");
if (success) {
console.log("写入成功");
}append(path, content)
参数:
path {string}文件路径content {string}要追加的内容
返回: {boolean} 成功返回true,失败返回false
追加内容到文件末尾。如果文件不存在会自动创建。
Files.append("/sdcard/test.txt", "\n这是追加的内容");delete(path)
参数: path {string} 文件或目录路径
返回: {boolean} 成功返回true,失败返回false
删除文件或目录。如果是目录,会递归删除目录下的所有文件和子目录。
Files.delete("/sdcard/test.txt"); // 删除文件
Files.delete("/sdcard/testDir"); // 删除目录及其所有内容exists(path)
参数: path {string} 文件或目录路径
返回: {boolean} 存在返回true,不存在返回false
检查文件或目录是否存在。
if (Files.exists("/sdcard/test.txt")) {
console.log("文件存在");
}mkdirs(path)
参数: path {string} 目录路径
返回: {boolean} 成功返回true,失败返回false
创建目录(包括所有父目录)。如果目录已存在则返回true。
Files.mkdirs("/sdcard/myDir/subDir"); // 创建目录及其父目录list(path)
参数: path {string} 目录路径
返回: {string[]} 文件名数组
列出目录中的文件和子目录名称(不包含路径)。
let files = Files.list("/sdcard");
files.forEach(file => {
console.log(file); // 输出文件名
});listFiles(path)
参数: path {string} 目录路径
返回: {string[]} 文件完整路径数组
列出目录中的文件和子目录的完整路径。
let files = Files.listFiles("/sdcard");
files.forEach(file => {
console.log(file); // 输出完整路径,如 /sdcard/test.txt
});copy(source, destination)
参数:
source {string}源文件路径destination {string}目标文件路径
返回: {boolean} 成功返回true,失败返回false
复制文件。如果目标目录不存在会自动创建。
Files.copy("/sdcard/source.txt", "/sdcard/dest.txt");move(source, destination)
参数:
source {string}源文件路径destination {string}目标文件路径
返回: {boolean} 成功返回true,失败返回false
移动文件。如果目标目录不存在会自动创建。
Files.move("/sdcard/old.txt", "/sdcard/new.txt");size(path)
参数: path {string} 文件路径
返回: {number} 文件大小(字节),如果文件不存在或为目录返回-1
获取文件大小(字节)。
let fileSize = Files.size("/sdcard/test.txt");
console.log("文件大小:" + fileSize + " 字节");isDirectory(path)
参数: path {string} 路径
返回: {boolean} 是目录返回true,否则返回false
检查路径是否为目录。
if (Files.isDirectory("/sdcard")) {
console.log("这是一个目录");
}isFile(path)
参数: path {string} 路径
返回: {boolean} 是文件返回true,否则返回false
检查路径是否为文件。
if (Files.isFile("/sdcard/test.txt")) {
console.log("这是一个文件");
}getName(path)
参数: path {string} 文件路径
返回: {string} 文件名
获取文件名(包含扩展名)。
let fileName = Files.getName("/sdcard/test.txt");
console.log(fileName); // 输出: test.txtgetParent(path)
参数: path {string} 文件路径
返回: {string} 父目录路径
获取父目录路径。
let parent = Files.getParent("/sdcard/test.txt");
console.log(parent); // 输出: /sdcardgetAbsolutePath(path)
参数: path {string} 文件路径
返回: {string} 绝对路径
获取文件的绝对路径。
let absPath = Files.getAbsolutePath("./test.txt");
console.log(absPath); // 输出绝对路径rename(oldPath, newPath)
参数:
oldPath {string}旧路径newPath {string}新路径
返回: {boolean} 成功返回true,失败返回false
重命名文件或目录。
Files.rename("/sdcard/old.txt", "/sdcard/new.txt");lastModified(path)
参数: path {string} 文件路径
返回: {number} 最后修改时间(毫秒),如果文件不存在返回-1
获取文件最后修改时间。
let timestamp = Files.lastModified("/sdcard/test.txt");
let date = new Date(timestamp);
console.log("最后修改时间:" + date);readUri(uriString)
参数: uriString {string} URI字符串(支持content://和file://等URI)
返回: {string | null} 内容,如果失败返回null
从URI读取内容。支持content://和file://等URI格式。
// 从content URI读取
let content = Files.readUri("content://media/external/images/media/123");
// 从file URI读取
let content2 = Files.readUri("file:///sdcard/test.txt");readBytesFromUri(uriString)
参数: uriString {string} URI字符串
返回: {number[] | null} 字节数组,如果失败返回null
从URI读取字节数组。用于读取图片等二进制文件。
let bytes = Files.readBytesFromUri("content://media/external/images/media/123");
if (bytes !== null) {
console.log("图片大小:" + bytes.length + " 字节");
}getPathFromUri(uriString)
参数: uriString {string} content URI字符串
返回: {string | null} 真实文件路径,如果失败返回null
从content URI获取真实文件路径。
let path = Files.getPathFromUri("content://media/external/images/media/123");
console.log("真实路径:" + path);readBytes(path)
参数: path {string} 文件路径
返回: {number[] | null} 字节数组,如果失败返回null
从文件读取字节数组。用于读取二进制文件。
let bytes = Files.readBytes("/sdcard/image.jpg");
if (bytes !== null) {
console.log("文件大小:" + bytes.length + " 字节");
}writeBytes(path, bytes)
参数:
path {string}文件路径bytes {number[]}要写入的字节数组
返回: {boolean} 成功返回true,失败返回false
写入字节数组到文件。用于写入二进制文件。
let bytes = [72, 101, 108, 108, 111]; // "Hello" 的字节数组
Files.writeBytes("/sdcard/binary.bin", bytes);copyFromUri(uriString, destination)
参数:
uriString {string}源URI字符串destination {string}目标文件路径
返回: {boolean} 成功返回true,失败返回false
从URI复制文件到目标路径。
Files.copyFromUri("content://media/external/images/media/123", "/sdcard/copied.jpg");getExternalStoragePath()
返回: {string} 外部存储路径
获取外部存储根目录路径(通常是/sdcard)。
let storagePath = Files.getExternalStoragePath();
console.log("外部存储路径:" + storagePath);getFilesPath()
返回: {string} 文件目录路径
获取应用私有文件目录路径。
let filesPath = Files.getFilesPath();
console.log("应用文件目录:" + filesPath);getCachePath()
返回: {string} 缓存目录路径
获取应用缓存目录路径。
let cachePath = Files.getCachePath();
console.log("缓存目录:" + cachePath);getExternalFilesPath(type)
参数: type {string | null} 文件目录类型(如"Pictures"、"Documents"),null表示根目录
返回: {string} 外部文件目录路径
获取应用外部私有文件目录路径。
// 获取Pictures目录
let picturesPath = Files.getExternalFilesPath("Pictures");
// 获取根目录
let rootPath = Files.getExternalFilesPath();getExternalFilesPath()
返回: {string} 外部文件目录路径
获取应用外部私有文件根目录路径。
let externalPath = Files.getExternalFilesPath();getDownloadPath()
返回: {string} Download目录路径
获取Download目录路径。
let downloadPath = Files.getDownloadPath();
console.log("下载目录:" + downloadPath);getPicturesPath()
返回: {string} Pictures目录路径
获取Pictures目录路径。
let picturesPath = Files.getPicturesPath();
console.log("图片目录:" + picturesPath);getDCIMPath()
返回: {string} DCIM目录路径
获取DCIM目录路径(相机照片存储目录)。
let dcimPath = Files.getDCIMPath();
console.log("DCIM目录:" + dcimPath);getMoviesPath()
返回: {string} Movies目录路径
获取Movies目录路径。
let moviesPath = Files.getMoviesPath();
console.log("视频目录:" + moviesPath);getMusicPath()
返回: {string} Music目录路径
获取Music目录路径。
let musicPath = Files.getMusicPath();
console.log("音乐目录:" + musicPath);getDocumentsPath()
返回: {string} Documents目录路径
获取Documents目录路径。
let documentsPath = Files.getDocumentsPath();
console.log("文档目录:" + documentsPath);readAsset(fileName)
参数: fileName {string} assets目录中的文件名
返回: {string | null} 文件内容,如果失败返回null
从assets目录读取文件。
let content = Files.readAsset("config.json");
if (content !== null) {
console.log(content);
}isExternalStorageWritable()
返回: {boolean} 可用且可写返回true,否则返回false
检查外部存储是否可用且可写。
if (Files.isExternalStorageWritable()) {
console.log("外部存储可写");
}isExternalStorageReadable()
返回: {boolean} 可读返回true,否则返回false
检查外部存储是否可读。
if (Files.isExternalStorageReadable()) {
console.log("外部存储可读");
}getExtension(path)
参数: path {string} 文件路径
返回: {string} 文件扩展名(不含点),如果没有扩展名返回空字符串
获取文件扩展名。
let ext = Files.getExtension("/sdcard/test.txt");
console.log(ext); // 输出: txtgetNameWithoutExtension(path)
参数: path {string} 文件路径
返回: {string} 不带扩展名的文件名
获取不带扩展名的文件名。
let name = Files.getNameWithoutExtension("/sdcard/test.txt");
console.log(name); // 输出: test