文件/文件夾函數
所屬頭文件
<wx/filefn.h>
參見
wxPathList
wxDir
wxFile
wxFileName
::wxDos2UnixFilename
::wxFileExists
::wxFileModificationTime
::wxFileNameFromPath
::wxFindFirstFile
::wxFindNextFile
::wxGetDiskSpace
::wxGetFileKind
::wxGetOSDirectory
::wxIsAbsolutePath
::wxDirExists
::wxPathOnly
::wxUnix2DosFilename
wxCHANGE_UMASK
::wxConcatFiles
::wxCopyFile
::wxGetCwd
::wxGetWorkingDirectory
::wxGetTempFileName
::wxIsWild
::wxMatchWild
::wxMkdir
::wxParseCommonDialogsFilter
::wxRemoveFile
::wxRenameFile
::wxRmdir
::wxSetWorkingDirectory
::wxSplitPath
::wxTransferFileToStream
::wxTransferStreamToFile
::wxDos2UnixFilename
void wxDos2UnixFilename(wxChar *s)
通過將反斜杠(\)替換為正斜杠(/)來實現DOS格式的文件名到Unix格式的轉換。
::wxFileExists
bool wxFileExists(const wxString& filename)
檢測文件是否存在, 當 filename 存在並且為文件時返回 true 。
::wxFileModificationTime
time_t wxFileModificationTime(const wxString& filename)
返回給定文件的最后一次修改時間。
函數返回 (time_t)-1 表示遇到錯誤(例如: 文件未找到時)。
::wxFileNameFromPath
wxString wxFileNameFromPath(const wxString& path)
char * wxFileNameFromPath(char *path)
注意: 該函數已被廢棄, 請使用 wxFileName::SplitPath 代替。
從完整路徑中返回分離出的文件名。第二種形式返回一個指向臨時存儲區的指針, 該臨時存儲區域所占用的空間不應該被釋放。
::wxFindFirstFile
wxString wxFindFirstFile(const char *spec, int flags = 0)
該函數用於在所指定的目錄中做搜索, 返回符合通配符 spec 的第一個文件路徑, 或空字符串。使用 wxFindNextFile 匹配符合條件的下一個文件。所匹配的結果不會包含當前目錄 "." 或上級目錄 ".."。
警告
從 wx 2.5.2 版本起, 這兩個函數會令線程變得不安全! (它們使用靜態變量)。你或許會使用 wxDir::GetFirst 或 wxDirTraverser 來進行替代。
spec 為可能需要包含的通配符。
flags 為允許匹配的類型標識, wxDIR 匹配子目錄, wxFILE 匹配文件。
例如:
wxString f = wxFindFirstFile("/home/project/*.*");
while ( !f.empty() )
{
...
f = wxFindNextFile();
}
::wxFindNextFile
wxString wxFindNextFile()
返回符合 wxFindFirstFile 函數中匹配條件的下一個文件路徑。
參見 wxFindFirstFile 中的示例。
::wxGetDiskSpace
bool wxGetDiskSpace(const wxString& path, wxLongLong *total = NULL, wxLongLong *free = NULL)
該函數以字節為單位返回目錄路徑 path (路徑應當存在) 所在盤符的總空間和剩余空間大小。 當你不需要其中某個相應的信息時, total 和 free 參數可以設為 NULL。
返回值
返回 true 表示成功, false 表示遇到錯誤 (例如, 目錄路徑不存在)。
可移植性
該函數僅應用於 Win32 平台, Mac OS 和 通用 Unix 系統提供有 statfs() 函數。
該函數首次添加於 wxWidgets 2.3.2。
::wxGetFileKind
wxFileKind wxGetFileKind(int fd)
wxFileKind wxGetFileKind(FILE *fp)
返回一個已經打開的文件的類型。可能的值如下:
enum wxFileKind
{
wxFILE_KIND_UNKNOWN,
wxFILE_KIND_DISK, // 支持求任意偏移量的文件 譯者注: 磁盤文件
wxFILE_KIND_TERMINAL, // 終端設備文件
wxFILE_KIND_PIPE // 管道文件
};
所屬頭文件
<wx/filefn.h>
::wxGetOSDirectory
wxString wxGetOSDirectory()
返回當前 Windows 系統所在的目錄; 其他平台返回一個空的字符串。
::wxIsAbsolutePath
bool wxIsAbsolutePath(const wxString& filename)
判斷是否為絕對路徑, 是絕對路徑時返回 true, 例如, 帶有斜杠或者以盤符開始的路徑。
::wxDirExists
bool wxDirExists(const wxChar *dirname)
檢測目錄是否存在, 當路徑 dirname 存在且為目錄時返回 true 。
::wxPathOnly
wxString wxPathOnly(const wxString& path)
返回完整文件路徑 path 的目錄部分。
::wxUnix2DosFilename
void wxUnix2DosFilename(wxChar *s)
該函數已被廢棄, 使用 wxFileName 代替。
通過斜杠替換為反斜杠的方式將 Unix 路徑轉為 Dos 路徑。
wxCHANGE_UMASK
wxCHANGE_UMASK(int mask)
在 Unix 下, 使用該宏將可以將當前文件權限的掩碼更改為給定值, 當值為 -1 時表示什么也不做, 將值恢復為默認值范圍后退出。它的工作原理是聲明一個對象, 在對象調用構造函數時設定 umask 為 mask, 當析構函數被調用時進行復位。
在其他平台上該宏無擴展。
::wxConcatFiles
bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3)
合並 file1 and file2 到 file3, 成功時返回 true 。
::wxCopyFile
bool wxCopyFile(const wxString& file1, const wxString& file2, bool overwrite = true)
復制 file1 到 file2, 成功時返回 true 。如果目標文件已經存在, 當 overwrite 參數為 true (默認), 文件將被覆蓋, 為 false 時, 不進行復制, 函數執行失敗。
::wxGetCwd
wxString wxGetCwd()
返回一個包含當前路徑(或工作路徑)的字符串。
::wxGetWorkingDirectory
wxChar* wxGetWorkingDirectory(char *buf=NULL, int sz=1000)
注意: 該函數已被廢棄: 使用 wxGetCwd 代替。
當 buf 存在時, 復制當前工作路徑到 buf; 當 buf 不存在時, 復制當前工作路徑到自動分配的存儲區(這時你必須自己手動釋放)。
sz 為緩沖區大小, 如果 buf 存在的話。
//譯者注: 該函數提供的函數原型與文檔中不同, 譯者采用 .h 頭文件中的原型, 文檔中的函數原型為: wxString wxGetWorkingDirectory(char *buf=NULL, int sz=1000)
::wxGetTempFileName
char * wxGetTempFileName(const wxString& prefix, char *buf=NULL)
bool wxGetTempFileName(const wxString& prefix, wxString& buf)
注意: 該函數已被廢棄, 請使用 wxFileName::CreateTempFileName 代替。
::wxIsWild
bool wxIsWild(const wxString& pattern)
判斷是否包含通配符, 當 pattern 中包含通配符時返回 true 。 令見 wxMatchWild。
::wxMatchWild
bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special)
當 text 能夠被 pattern 匹配時返回 true; 若 dot_special 為 true, 以點('.')開始的文件名將不會被匹配。另見 wxIsWild。
::wxMkdir
bool wxMkdir(const wxString& dir, int perm = 0777)
創建一個目錄 dir, 返回 true 時表示成功。
perm 參數為訪問掩碼, 該參數指定了 dir 目錄的具體的訪問權限, 被 Unix 系統所支持, 在其他平台上沒有影響。
::wxParseCommonDialogsFilter
int wxParseCommonDialogsFilter(const wxString& wildCard, wxArrayString& descriptions, wxArrayString& filters)
用於解析通配符 wildCard, 返回解析出的數量。 返回 0 表示沒有一個或者出現了問題。 在發現錯誤前, 數組中將包含已解析到的相等數目的元素。 在本地通用對話框中, 每個條目只有一個過濾器, 所給定的數組元素數目會自動調整。 wildCard 通配符形式:
"All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
::wxRemoveFile
bool wxRemoveFile(const wxString& file)
刪除 file 文件, 返回 true 表示成功。
::wxRenameFile
bool wxRenameFile(const wxString& file1, const wxString& file2, bool overwrite = true)
重命名 file1 為 file2, 返回 true 表示成功。
當目標文件已經存在時, 若 overwrite 參數為 true (默認), 文件將被覆蓋, overwrite 為 false, 不進行重命名, 函數返回失敗。
::wxRmdir
bool wxRmdir(const wxString& dir, int flags=0)
刪除 dir 目錄, 翻譯 true 表示成功。 在虛擬機下使用無效。
參數 flags 目前為保留參數, 在以后可能會使用到。
請注意還有一個 wxRmDir 函數, 該函數是可移植性操作系統接口標准函數 rmdir() 的封裝, 它會返回一個 int 型的錯誤標識代替 bool 型( 但是在其他方面目前與 wxRmdir 相同 ), 不要將這兩個函數弄混淆。
::wxSetWorkingDirectory
bool wxSetWorkingDirectory(const wxString& dir)
設置當前工作目錄, 返回 true 表示操作成功。 在 Windows 下, 若 dir 所在的磁盤分區與當前使用的分區格式不同, 那么磁盤驅動器也將發生改變。
::wxSplitPath
void wxSplitPath(const char * fullname, wxString * path, wxString * name, wxString * ext)
注意: 該函數已被廢棄, 請使用 wxFileName::SplitPath 代替。
該函數用於從完整的文件路徑中分離出不同的成分: 路徑 path (在 Windows 下可能包含磁盤驅動器名), 基礎文件名和文件擴展名。如果只對其中特定的成分感興趣, 其中不需要的參數 (path, name 或 ext) 都可以為空。
在 Windows 中, wxSplitPath() 能夠正確的處理 DOS 和 Unix 路徑中的文件名, 但是在 Unix 中, 函數不會以反斜杠作為路徑分離標識( 例如反斜杠在文件名中是有效的字符 )。
在使用時, fullname 應該不為空 (雖然它可能為空)。
在獲得的值中, path 中包含的是文件路徑 (不含結尾處的分隔符), name 為文件名; ext 為不含點('.')的擴展名。 如果相應成分不存在, 那么三個參數都有可能得到空值。在這種情況下, 參數中所指向的舊的內容將被重寫 (如果指針不為空).
::wxTransferFileToStream
bool wxTransferFileToStream(const wxString& filename, ostream& stream)
拷貝給定的文件轉換為 stream 流形式。 當需要用流去改寫舊式的應用程序時是非常有用的。 (例如, 在文檔/視圖的框架中)。//譯者注: 該句的翻譯可能存在問題
所屬頭文件
<wx/docview.h>
::wxTransferStreamToFile
bool wxTransferStreamToFile(istream& stream const wxString& filename)
拷貝給定的 stream 流轉換到一個文件 filename 。當需要用流去改寫舊式的應用程序時是非常有用的。 (例如, 在文檔/視圖的框架中)。//譯者注: 該句的翻譯可能存在問題
所屬頭文件
<wx/docview.h>
官方原文: http://docs.wxwidgets.org/2.8/wx_filefunctions.html
[譯者注] 筆者英語水平較水, 所譯內容僅供參考, 如有錯誤之處懇請指正!
--------------------
wid, 2013.03.02
