如何检查文件是否为文本文件?

时间:2019-04-15 06:42:28

标签: perl6 file-type

Perl6是否具有类似于Perl5 -T file test的名称,以判断文件是否为文本文件?

3 个答案:

答案 0 :(得分:20)

没有内置任何内容,但是有一个模块Data::TextOrBinary可以做到这一点。

use Data::TextOrBinary;
say is-text('/bin/bash'.IO);                            # False
say is-text('/usr/share/dict/words'.IO);                # True

答案 1 :(得分:10)

这是对has not been translated to Perl 6的启发。您可以简单地以UTF8(或ASCII)形式读取它,以执行相同操作:

given slurp("read-utf8.p6", enc => 'utf8') -> $f {
    say "UTF8";
}

(用要检查的文件名替换read-utf8.p6)

答案 2 :(得分:4)

我们可以通过以下代码使用File :: Type。

use strict;
use warnings;

use File::Type;

my $file      = '/path/to/file.ext';
my $ft        = File::Type->new();
my $file_type = $ft->mime_type($file);

if ( $file_type eq 'application/octet-stream' ) {
    # possibly a text file
}
elsif ( $file_type eq 'application/zip' ) {
    # file is a zip archive
}

来源:https://metacpan.org/pod/File::Type