內容

名稱

File::Spec::Win32 - Win32 檔案規格方法

語法

require File::Spec::Win32; # Done internally by File::Spec if needed

說明

請參閱 File::Spec::Unix 以取得所提供方法的文件。此套件會覆寫這些方法的實作,而不是語意。

devnull

傳回空裝置的字串表示。

tmpdir

傳回下列清單中第一個現有目錄的字串表示

$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 也用於那些平台)。

如果在污染模式下執行,且環境變數遭到污染,則不會使用它們。

case_tolerant

MSWin32 大小寫容許度取決於 GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,指出比較檔案規格時的大小寫重要性。由於 XP FS_CASE_SENSITIVE 實際上已停用 NT 子子系統。請參閱 http://cygwin.com/ml/cygwin/2007-07/msg00891.html 預設值:1

file_name_is_absolute

截至目前,如果路徑是絕對路徑且有磁碟區,則傳回 2;如果路徑是絕對路徑但沒有磁碟區,則傳回 1;否則傳回 0。

catfile

串接一個或多個目錄名稱和一個檔名,以形成一個以檔名結尾的完整路徑

canonpath

不對檔案系統進行實體檢查,但會對路徑進行邏輯清理。在 UNIX 上,會移除連續的斜線和連續的「/。」。在 Win32 上,會執行下列動作:

dir1\dir2\dir3\..\..\dir4 -> \dir\dir4 and even
dir1\dir2\dir3\...\dir4   -> \dir\dir4
splitpath
($volume,$directories,$file) = File::Spec->splitpath( $path );
($volume,$directories,$file) = File::Spec->splitpath( $path,
                                                      $no_file );

將路徑分割成磁碟區、目錄和檔名部分。假設最後一個檔案是一個路徑,除非路徑以「\\」、「\\.」、「\\..」或 $no_file 為 true 結尾。在 Win32 上,這表示 $no_file 為 true 會讓此函式傳回 ( $volume, $path, '' )。

可接受的分隔符號為 \ 和 /。

磁碟區可以是磁碟機代號或 UNC 共享名稱 (\\server\share)。

結果可以傳遞給 "catpath",以取得等於 (通常與原始路徑相同) 的路徑。

splitdir

catdir() 相反。

@dirs = File::Spec->splitdir( $directories );

$directories 必須僅為具有磁碟區概念或具有將檔案與目錄區分開來的路徑語法的系統的路徑的目錄部分。

與僅在分隔符號上分割目錄不同,可以傳回前導的空白和尾隨的目錄項目,因為這些項目在某些作業系統中很重要。因此,

File::Spec->splitdir( "/a/b/c" );

會產生

( '', 'a', 'b', '', 'c', '' )
catpath

取得磁碟區、目錄和檔案部分,並傳回整個路徑。在 Unix 上,會忽略 $volume,這就像 catfile() 一樣。在其他作業系統上,$volume 會變得重要。

File::Spec::Win32 維護人員注意事項

Novell NetWare 從 File::Spec::Win32 繼承其 File::Spec 行為。

COPYRIGHT

版權所有 (c) 2004,2007,Perl 5 Porters。保留所有權利。

此程式為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

另請參閱

請參閱 File::SpecFile::Spec::Unix。此套件會覆寫這些方法的實作,而不是語意。