The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.


Filesys::Type - Portable way of determining the type of a file system.


  use Filesys::Type qw(fstype);
  my $fs = '/mnt/hda7';
  warn "Not able to share with Windows"
     if (fstype($fs) ne 'vfat');


This module provides a portable interface, either to Unix mount -n or to Win32::filesys or to another native OS interface.

The module is pluggable, which will allow for other operating systems to be added in future without needing to change the core module.


This exportable function takes a string, which is a file or directory path, and returns the file system type, e.g. vfat, ntfs, ext2, etc. Note that the exact string returned is operating system dependent.


This is another exportable function that returns the case sensitivity of a file system. It either takes a file system type as returned by fstype, or a path as input. It returns one of the following:


like Unix ext2, ext3, etc.


VMS ODS-2 filenames are case insensitive. System services return the names in upper case, but the CRTL which provides globbing and the command line interface turns to lower case.


This is the behaviour of Windows file systems, FAT16, FAT32 and NTFS. The file names are case insensitive, i.e. foo, Foo and FOO refer to the same file, but the initial case of the letters of the file name is preserved from the time it was created.


Use this to determine what went wrong if fstype returned undef. Returns a string suitable for printing in a log or on stderr.


Note that some platforms use backtick shell commands to derive information about the file systems. Be careful that a rogue user could execute operating system commands by injecting into the path.

It is recommended only to pass in untainted strings. See perldoc perlsec for details of running in taint mode, and for a description of how to untaint a string passed in from outside.


Please report bugs to Post to


0.01 Sun Jun 12 2005 - original version; created by ExtUtils::ModuleMaker 0.32

0.02 Fri Jul 08 2005 - Change plugins to be OO. Add diagnostic facility to see more about failing tests on some platforms.


        I. Williams


This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.