在dart控制台应用程序中,如何判断文件是否为二进制(非文本)?
答案 0 :(得分:2)
阅读文件内容并检查是否找到不可显示的字符。一个示例是\u0000
或连续\u0000
,它通常出现在二进制文件中,但不出现在文本文件中。
另请参阅How can I determine if a file is binary or text in c#?,https://stackoverflow.com/a/277568/217408
答案 1 :(得分:0)
我使用此代码定义二进制或文本文件:
bool isBinary(String path) {
final file = File(path);
RandomAccessFile raf = file.openSync(mode: FileMode.read);
Uint8List data = raf.readSync(124);
for (final b in data) {
if (b >= 0x00 && b <= 0x08) {
raf.close();
return true;
}
}
raf.close();
return false;
}
try {
isBinary('/filepath.ext');
} on FileSystemException {}