File::Spec::Win32 - Win32 文件规范的方法
require File::Spec::Win32; # Done internally by File::Spec if needed
有关此处提供的方法的文档,请参见 File::Spec::Unix。此程序包覆盖了这些方法的实现,而不是语义。
返回空设备的字符串表示形式。
返回以下列表中第一个现有目录的字符串表示形式
$ENV{TMPDIR}
$ENV{TEMP}
$ENV{TMP}
SYS:/temp
C:\system\temp
C:/temp
/tmp
/
SYS:/temp 在 Novell NetWare 中优先使用,而 C:\system\temp 在 Symbian 中优先使用(File::Spec::Win32 也用于这些平台)。
如果在污染模式下运行,并且环境变量被污染,则不使用它们。
MSWin32 大小写敏感性取决于 GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,指示比较文件规范时的大小写重要性。由于 XP FS_CASE_SENSITIVE 实际上已禁用 NT 子子系统。请参阅 http://cygwin.com/ml/cygwin/2007-07/msg00891.html 默认值:1
目前,如果路径是绝对路径且带有卷,则返回 2,如果路径是绝对路径且没有卷,则返回 1,否则返回 0。
将一个或多个目录名称和一个文件名连接起来,形成一个以文件名结尾的完整路径
不对文件系统进行物理检查,而是对路径进行逻辑清理。在 UNIX 上,消除了连续斜杠和连续 "/."。在 Win32 上,会
dir1\dir2\dir3\..\..\dir4 -> \dir\dir4 and even
dir1\dir2\dir3\...\dir4 -> \dir\dir4
($volume,$directories,$file) = File::Spec->splitpath( $path );
($volume,$directories,$file) = File::Spec->splitpath( $path,
$no_file );
将路径拆分为卷、目录和文件名部分。假设最后一个文件是一个路径,除非路径以 '\\', '\\.', '\\..' 结尾或 $no_file 为真。在 Win32 上,这意味着 $no_file 为真会使此返回 ( $volume, $path, '' )。
接受的分隔符为 \ 和 /。
卷可以是驱动器盘符或 UNC 共享名称 (\\server\share)。
结果可以传递给 "catpath" 以获取与原始路径等效(通常相同)的路径。
catdir() 的相反操作。
@dirs = File::Spec->splitdir( $directories );
$directories 必须仅为具有卷概念或具有将文件与目录区分开来的路径语法的系统上的路径的目录部分。
与仅在分隔符上拆分目录不同,可以返回前导空目录和尾随目录条目,因为这些在某些操作系统上很重要。所以,
File::Spec->splitdir( "/a/b/c" );
产生
( '', 'a', 'b', '', 'c', '' )
获取卷、目录和文件部分并返回整个路径。在 Unix 下,$volume 被忽略,这就像 catfile()。在其他操作系统上,$volume 变得很重要。
Novell NetWare 从 File::Spec::Win32 继承其 File::Spec 行为。
版权所有 (c) 2004,2007 by the Perl 5 Porters。保留所有权利。
此程序是免费软件;您可以在与 Perl 自身相同的条款下重新分发或修改它。
请参阅 File::Spec 和 File::Spec::Unix。此程序包覆盖了这些方法的实现,而不是语义。