【发布时间】:2015-10-09 14:41:50
【问题描述】:
在 dart 控制台应用程序中,如何判断文件是否为二进制文件(非文本)?
【问题讨论】:
标签: dart binaryfiles
在 dart 控制台应用程序中,如何判断文件是否为二进制文件(非文本)?
【问题讨论】:
标签: dart binaryfiles
读取文件内容并检查是否发现不可显示的字符。一个例子是\u0000 或连续的\u0000,这通常出现在二进制文件中而不是文本文件中。
另见How can I determine if a file is binary or text in c#?、https://stackoverflow.com/a/277568/217408
【讨论】:
我使用这段代码来定义一个二进制或文本文件:
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 {}
【讨论】: