欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Windows CE文件操作
文件操作
    應用程序中很多時(shí)候需要創(chuàng )建、打開(kāi)不同格式的文件,存儲或者讀取不同格式的數據信息。
——————————————————————————————————
一 使用Windows CE提供的API函數
       1> 創(chuàng )建/打開(kāi)文件
HANDLE CreateFile(  LPCTSTR lpFileName,  DWORD dwDesiredAccess,  DWORD dwShareMode,  LPSECURITY_ATTRIBUTES lpSecurityAttributes,  DWORD dwCreationDisposition,  DWORD dwFlagsAndAttributes,  HANDLE hTemplateFile);       參數含義:
       lpFileName:創(chuàng )建/打開(kāi)文件的文件名,需要包括其完整路徑。
       dwDesiredAccess:指定文件的訪(fǎng)問(wèn)權限,如可讀,可寫(xiě)。(詳見(jiàn)表1)
GENERIC_READ
 可讀
 
GENERIC_WRITE
 可寫(xiě)
 
GENERIC_WRITE | GENERIC_READ
 可讀可寫(xiě)
 
0
 不可讀不可寫(xiě),只能獲取文件屬性
 
表1
       dwShareMode:在本進(jìn)程創(chuàng )建或者打開(kāi)一個(gè)文件后(未關(guān)閉之前),其他進(jìn)程是否還可以具有訪(fǎng)問(wèn)該文件的權限,由此參數設定。(詳見(jiàn)表2)
FILE_SHARE_WRITE
 其他進(jìn)程打開(kāi)文件時(shí)的訪(fǎng)問(wèn)權限為只寫(xiě)時(shí),成功
 
FILE_SHARE_READ
 其他進(jìn)程打開(kāi)文件時(shí)的訪(fǎng)問(wèn)權限為只讀時(shí),成功
 
0
 在該文件的句柄被關(guān)閉之前,不能夠被共享,也不能夠被打開(kāi)
 
表2
       lpSecurityAttributes:指定文件訪(fǎng)問(wèn)的安全屬性,Windows CE下不支持該參數,因此設置為NULL。
       dwCreationDisposition:指定創(chuàng )建/打開(kāi)文件的方式。(詳見(jiàn)表3)
 
 
GREATE_NEW
 創(chuàng )建一個(gè)新文件,如果文件已經(jīng)存在,則函數執行失敗
 
GREATE_ALWAYS
 創(chuàng )建一個(gè)文件,如果文件已經(jīng)存在,則覆蓋此文件,并清空已經(jīng)存在的屬性
 
OPEN_EXISTING
 打開(kāi)一個(gè)已經(jīng)存在的文件,如果文件不存在,則函數執行失敗
 
OPEN_ALWAYS
 打開(kāi)一個(gè)已經(jīng)存在的文件,如果文件不存在,則創(chuàng )建一個(gè)新文件
 
TRUNCATE_EXISTING
 打開(kāi)一個(gè)已經(jīng)存在的文件,并將其截斷到0字節,如果文件不存在,則函數執行失敗
 
                                                                表3
注:該參數設置為T(mén)RUNCATE_EXISTING,有一個(gè)必要的條件:dwDesiredAccess參數必須設置為GENERIC_WRITE。
dwFlagsAndAttributes:指定文件屬性。(詳見(jiàn)表4)
FILE_ATTRIBUTE_ARCHIVE
 存檔
 
FILE_ATTRIBUTE_HIDDEN
 隱藏
 
FILE_ATTRIBUTE_NORMAL
 默認屬性
 
FILE_ATTRIBUTE_READONLY
 只讀
 
FILE_ATTRIBUTE_SYSTEM
 系統屬性,表明該文件對系統操作很重要
 
                                                                表4
hTemplateFile:Windows CE中不支持,設為0。
       返回值:成功,返回文件句柄,失敗則返回INVALID_HANDLE_VALUE。如果調用失敗,通過(guò)GetLastError函數查看失敗原因。
       2> 關(guān)閉文件
BOOL CloseHandle(  HANDLE hObject);       參數含義:
       hObject:文件的句柄,CreateFile函數的返回值。
       返回值:成功,返回非零值;失敗,返回零值。
      3> 讀取文件
BOOL ReadFile(  HANDLE hFile,  LPVOID lpBuffer,  DWORD nNumberOfBytesToRead,  LPDWORD lpNumberOfBytesRead,  LPOVERLAPPED lpOverlapped);       參數含義:
       hFile:文件句柄。
       lpBuffer:指定接收數據緩沖區。
       nNumberOfBytesToRead:要讀取的字節數。
       lpNumberOfBytesRead:實(shí)際讀取的字節數。
lpOverlapped:Windows CE不支持,設置為NULL。
返回值:成功返回TRUE,失敗返回FALSE。
4> 寫(xiě)入文件
BOOL WriteFile(  HANDLE hFile,  LPCVOID lpBuffer,  DWORD nNumberOfBytesToWrite,  LPDWORD lpNumberOfBytesWritten,  LPOVERLAPPED lpOverlapped);參數含義:
hFile:文件句柄。
lpBuffer:指定寫(xiě)入數據緩沖區。
       nNumberOfBytesToRead:要寫(xiě)入文件的字節數。
       lpNumberOfBytesRead:實(shí)際寫(xiě)入文件的字節數。
lpOverlapped:Windows CE不支持,設置為NULL。
返回值:成功返回TRUE,失敗返回FALSE。
       5> 文件指針的移動(dòng)
       讀寫(xiě)文件之前,可以通過(guò)指針的移動(dòng)來(lái)設置讀寫(xiě)文件的位置。
DWORD SetFilePointer(  HANDLE hFile,  LONG lDistanceToMove,  PLONG lpDistanceToMoveHigh,  DWORD dwMoveMethod);參數含義:
hFile:文件句柄。
lDistanceToMove:指定(有符號32位)偏移量。
lpDistanceToMoveHigh:指定一個(gè)輔助的32位偏移量,它在文件指針移動(dòng)距離超出4G時(shí)開(kāi)始使用。否則設置為NULL。
dwMoveMethod:(詳見(jiàn)表5)
 
FILE_BEGIN
 從文件首部開(kāi)始計算偏移量
 
FILE_CURRENT
 從文件當前位置開(kāi)始計算偏移量
 
FILE_END
 從文件的末尾位置開(kāi)始計算
 
表5
       返回值:為了更容易理解,這里引用MSDN原文并給出中文解釋。
——————————————————————————————————
If the SetFilePointer function succeeds and lpDistanceToMoveHigh is NULL, the return value is the low order DWORD of the new file pointer.
If lpDistanceToMoveHigh is not NULL, the function returns the low order DWORD of the new file pointer, and puts the high order DWORD of the new file pointer into the LONG pointed to by that parameter.
If the function fails and lpDistanceToMoveHigh is NULL, the return value is INVALID_SET_FILE_POINTER. To get extended error information, call GetLastError.
If the function fails, and lpDistanceToMoveHigh is not NULL, the return value is INVALID_SET_FILE_POINTER. However, because INVALID_SET_FILE_POINTER is a valid value for the low order DWORD of the new file pointer, you must check GetLastError to determine whether or not an error occurred. If an error occurred, GetLastError returns a value different from NO_ERROR.
——————————————————————————————————
     注:假如函數執行成功,并且lpDistanceToMoveHigh參數設置為NULL,返回值為新的文件指針的低32位值。假如lpDistanceToMoveHigh參數不為NULL,函數返回新的文件指針的低32位數值,高32位數值裝載進(jìn)參數指向的變量。假如函數執行失敗并且lpDistanceToMoveHigh參數為NULL,則返回INVALID_SET_FILE_POINTER,可以通過(guò)調用GetLastError函數來(lái)獲取進(jìn)一步的錯誤信息。假如函數執行失敗并且lpDistanceToMoveHigh參數不為NULL,返回值仍為INVALID_SET_FILE_POINTER。但是,由于“INVALID_SET_FILE_POINTER”本身是一個(gè)新的文件指針雙字節值的低位有效的值,所以必須通過(guò)調用GetLastError函數來(lái)查看是否有錯誤發(fā)生。如果發(fā)生了錯誤,GetLastError函數將返回錯誤信息(非NO_ERROR)。
 
       6> 獲取文件信息
DWORD GetFileAttributes(  LPCTSTR lpFileName);       參數含義:
       lpFileName:文件名。
       返回值:函數執行成功返回DWORD類(lèi)型的文件屬性值(詳見(jiàn)表6),如果失敗則返回0xFFFFFFFF。
FILE_ATTRIBUTE_ARCHIVE
 此文件或目錄具有存檔屬性,應用程序將根據此屬性標識此文件或目錄是否備份或刪除
 
FILE_ATTRIBUTE_COMPRESSED
 此文件或者目錄是壓縮的。對于一個(gè)文件來(lái)說(shuō),文件中的內容是被壓縮的。對于一個(gè)目錄來(lái)說(shuō),它其中的文件或者子目錄被新建時(shí),默認是壓縮的
 
FILE_ATTRIBUTE_DIRECTORY
 表明lpFileName參數所指定的是一個(gè)目錄,而不是一個(gè)文件
 
FILE_ATTRIBUTE_ENCRYPTED
 文件或者目錄是被加密的。對于一個(gè)文件來(lái)說(shuō),文件中的內容是被加密的。對于一個(gè)目錄來(lái)說(shuō),它其中的文件或者子目錄被新建時(shí),默認加密
 
FILE_ATTRIBUTE_HIDDEN
 文件或目錄是隱藏的
 
FILE_ATTRIBUTE_NORMAL
 正常屬性
 
FILE_ATTRIBUTE_READONLY
 文件或者目錄是只讀的
 
FILE_ATTRIBUTE_SPARSE_FILE
 此文件是一個(gè)稀少文件
 
FILE_ATTRIBUTE_SYSTEM
 文件或者目錄是系統的一部分或者專(zhuān)門(mén)被系統調用的
 
FILE_ATTRIBUTE_TEMPORARY
 文件被當做臨時(shí)文件使用
 
FILE_ATTRIBUTE_ROMSTATICREF
 表示這個(gè)DLL模塊被靜態(tài)鏈接到ROM中別的模塊。此DLL不能被別的位置具有相同文件名的模塊所取代
 
FILE_ATTRIBUTE_ROMMODULE
 文件是ROM的一個(gè)可執行文件,該文件被格式化為可以加載以立刻執行。此文件不能夠通過(guò)CreateFile函數打開(kāi)
 
表6
      7> 設置文件屬性
BOOL SetFileAttributes(  LPCTSTR lpFileName,  DWORD dwFileAttributes);       參數含義:
       lpFileName:文件名。
       dwFileAttributes:文件屬性。
       返回值:成功返回非零值,失敗返回零。
      8> 獲取文件時(shí)間
       Windows CE的文件時(shí)間包括三種,分別是文件的創(chuàng )建時(shí)間,文件最后一次被訪(fǎng)問(wèn)的時(shí)間(包括讀取,寫(xiě)入和執行)和文件最后一次被修改的時(shí)間。
BOOL GetFileTime(  HANDLE hFile,  LPFILETIME lpCreationTime,  LPFILETIME lpLastAccessTime,  LPFILETIME lpLastWriteTime);       參數含義:
       hFile:文件句柄。
       lpCreationTime:文件的創(chuàng )建時(shí)間。
       lpLastAccessTime:文件最后一次被訪(fǎng)問(wèn)的時(shí)間。
lpLastWriteTime:文件最后一次被修改的時(shí)間。
返回值:成功返回非零值,失敗返回零。
9> 設置文件時(shí)間
BOOL SetFileTime(  HANDLE hFile,  const FILETIME* lpCreationTime,  const FILETIME* lpLastAccessTime,  const FILETIME* lpLastWriteTime);      參數含義:
       hFile:文件句柄。
       lpCreationTime:文件的創(chuàng )建時(shí)間。
       lpLastAccessTime:文件最后一次被訪(fǎng)問(wèn)的時(shí)間。
lpLastWriteTime:文件最后一次被修改的時(shí)間。
返回值:成功返回非零值,失敗返回零。
      10> 獲取文件大小
DWORD GetFileSize(  HANDLE hFile,  LPDWORD lpFileSizeHigh);      參數含義:
       hFile:文件句柄。
       lpFileSizeHigh:指定存儲文件大小的高32位,如果不需要處理超過(guò)4GB大小的文件,設置為NULL。
       返回值:函數執行成功,返回表示文件大小的低32位數值。如果參數lpFileSizeHigh設置為NULL,函數的返回值是0xFFFFFFFF時(shí),表示獲取文件大小失敗。如果參數lpFileSizeHigh未被設置為NULL,但是調用此函數后,lpFileSizeHigh的值為0xFFFFFFF,也表示函數執行失敗。
       一般情況下很少會(huì )處理大于4GB的文件,因此lpFileSizeHigh參數大多被設置為NULL,函數返回值直接表示文件的大小。
 
二 MFC模板中封裝的CFILE文件操作類(lèi)
      1> 創(chuàng )建/打開(kāi)文件
—————————————————————————————————
 
virtual BOOL Open(
   LPCTSTR lpszFileName,
   UINT nOpenFlags,
   CFileException* pError = NULL
);
—————————————————————————
     
 
2> 關(guān)閉文件
—————————————————————————
virtual void Close( );
—————————————————————————
      3> 讀取文件
—————————————————————————
virtual UINT Read(
   void* lpBuf,
   UINT nCount
);
—————————————————————————
      4> 寫(xiě)入文件
—————————————————————————
virtual void Write(
   const void* lpBuf,
   UINT nCount
);
—————————————————————————
      5> 文件指針的移動(dòng)
—————————————————————————
virtual ULONGLONG Seek(
   LONGLONG lOff,
   UINT nFrom
);
void SeekToBegin( );
ULONGLONG SeekToEnd( );
—————————————————————————
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
VC++ 中使用內存映射文件處理大文件
[Win32]一個(gè)調試器的實(shí)現(五)調試符號
Windows API一日一練(56)SetEndOfFile和GetFileSizeEx函數 截斷文件
Windows API一日一練(54)WriteFile和ReadFile函數
文件內存映射CreateFileMapping和GlobalAlloc內存分配
內存映射文件
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久