[譯] wxWidgets - File functions - 文件/文件夾函數


wxWidgets - 文件/文件夾函數

文件/文件夾函數

所屬頭文件

<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::GetFirstwxDirTraverser 來進行替代。

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 (路徑應當存在) 所在盤符的總空間和剩余空間大小。 當你不需要其中某個相應的信息時, totalfree 參數可以設為 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 file2file3, 成功時返回 true 。


::wxCopyFile

bool wxCopyFile(const wxString& file1, const wxString& file2, bool overwrite = true)

復制 file1file2, 成功時返回 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)

重命名 file1file2, 返回 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, nameext) 都可以為空。

在 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

 

上一篇: [譯] wxWidgets - wxDir

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM