HarmonyOS 鸿蒙Next对于分享文件至目标应用时音视频等文件无法通过fs\.statSync\(file\.path\)\.size获取文件大小如何解决
HarmonyOS 鸿蒙Next对于分享文件至目标应用时音视频等文件无法通过fs.statSync(file.path).size获取文件大小如何解决
外部的一些文件分享至目标应用,分享时fs.statSync(file.path).size
只能获取PDF,TXT等文件大小,但是音视频获取不到,求解
(record.uri && record.utd == "general.mpeg-4" || record.uri && record.utd == "general.audio" ||
record.uri && record.title) {
let uri: string = record.uri
let file = fs.openSync(uri, fs.OpenMode.READ_ONLY);
let typeObj = uniformTypeDescriptor.getTypeDescriptor(record.utd)
let fileSize: number
if (record.utd == "general.mpeg-4" || record.utd == "general.audio") {
//音视频,fs.statSync(file.path).size无法获取大小
fileSize = 0
} else {
//其他文件,pdf/txt等可以获取大小
fileSize = fs.statSync(file.path).size
}
}
更多关于HarmonyOS 鸿蒙Next对于分享文件至目标应用时音视频等文件无法通过fs\.statSync\(file\.path\)\.size获取文件大小如何解决的实战教程也可以访问 https://www.itying.com/category-93-b0.html
使用statSync
import fs from '@ohos.file.fs';
try {
let file = fs.openSync(file.path, fs.OpenMode.READ_ONLY); // 打开文件
let stat = fs.statSync(file.fd); // 使用文件描述符获取文件信息
console.info("File size: " + stat.size); // 获取文件大小
fs.closeSync(file.fd); // 关闭文件描述符
} catch (err) {
console.error("Failed to get file size: " + err.message);
}
或者start
import fs from '@ohos.file.fs';
fs.stat(file.path, (err, stat) => {
if (err) {
console.error("Failed to get file size: " + err.message);
} else {
console.info("File size: " + stat.size);
}
});
更多关于HarmonyOS 鸿蒙Next对于分享文件至目标应用时音视频等文件无法通过fs\.statSync\(file\.path\)\.size获取文件大小如何解决的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
13900002 没有这个文件或目录
错误信息
No such file or directory
我用相同的方式,当我分享过来的文件时txt,pdf时,路径能获取到,文件大小也能点出来。
但是分享音视频,file.path
也有值,但在执行stat(file.path)
时却又报上述错误。
测试没问题了,得用 fs.statSync(file.fd);
才能获取到全部类型文件的大小,谢谢!
在HarmonyOS鸿蒙Next中,若无法通过fs.statSync(file.path).size
获取音视频等文件的大小,可以尝试使用fileio
模块的stat
方法来获取文件信息。具体代码如下:
import fileio from '@ohos.fileio';
let filePath = 'your_file_path';
try {
let stat = fileio.statSync(filePath);
let fileSize = stat.size;
console.log(`File size: ${fileSize}`);
} catch (err) {
console.error(`Failed to get file size: ${err.message}`);
}
此方法通过fileio.statSync
获取文件状态信息,并从中提取文件大小。确保文件路径正确,并处理可能的异常情况。