1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use Win32::DriveInfo; my $file = 'C:\test\file.txt'; sub fileSizeBlocks { my $file = shift; my ($drive) = $file =~ /^([A-Z])/; my ( $SectorsPerCluster, $BytesPerSector ) = ( Win32::DriveInfo::DriveSpace($drive) )[ 0, 1 ]; my $blockSizeBytes = $SectorsPerCluster * $BytesPerSector; my $fileSizeBytes = ( stat($file) )[7]; my $blocks = int( $fileSizeBytes / $blockSizeBytes ); $blocks++ if ( $fileSizeBytes % $blockSizeBytes ); return $blockSizeBytes * $blocks; } say "Datei '$file' ist ", fileSizeBlocks($file), " groß";
2016-08-15T11:09:47 biancaSehr coole Idee, danke dir!
Nachher probiere ich mal aus, wie performant das ist. Das muss nämlich z. B. auch über c:\ laufen und darf dafür nicht tagelang brauchen :)
2016-08-16T13:06:22 RaubtierVielleicht hilft dir das weiter:
https://stackoverflow.com/questions/2483010/how-to...
bzw. Win32API::File::GetFileAttributes in Perl.
2016-08-16T13:06:22 RaubtierMüsste meinen Windows-Rechner mal wieder rauskramen, um das zu testen.