如何在飞镖中检测文件是否为二进制(非文本)?

时间:2015-10-09 14:41:50

标签: dart binaryfiles

在dart控制台应用程序中,如何判断文件是否为二进制(非文本)?

2 个答案:

答案 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 {}