国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

用dw制作個介紹家鄉(xiāng)網(wǎng)站煙臺網(wǎng)站建設

用dw制作個介紹家鄉(xiāng)網(wǎng)站,煙臺網(wǎng)站建設,旅游開發(fā)公司網(wǎng)站建設方案書,設計方案的格式范文文章目錄 前言一、文件指針是什么?二、設置文件指針的位置:隨機讀寫,SetFilePointer函數(shù)1.函數(shù)說明2.函數(shù)實例 三、 目錄的創(chuàng)建CreateDirectory四、目錄的刪除RemoveDirectory總結 前言 Windows程序設計10:文件指針及目錄的創(chuàng)建與…

文章目錄

  • 前言
  • 一、文件指針是什么?
  • 二、設置文件指針的位置:隨機讀寫,SetFilePointer函數(shù)
    • 1.函數(shù)說明
    • 2.函數(shù)實例
  • 三、 目錄的創(chuàng)建CreateDirectory
  • 四、目錄的刪除RemoveDirectory
  • 總結


前言

Windows程序設計10:文件指針及目錄的創(chuàng)建與刪除。


一、文件指針是什么?

文件指針主要用于文件的讀和寫。打開一個文件后,默認就與之產(chǎn)生了一個內(nèi)部的記錄文件位置的指針,用于指示當前的讀寫位置。當進行了文件的讀寫操作后,指針會自動往后移動。讀寫了多少字節(jié),就會往后移動多少字節(jié)。默認情況下可能我們也不需要關心文件的指針,因為文件的指針位置都是默認自動控制的。當你想要從一個文件的指定位置進行讀寫的時候就需要用到文件指針。如大文件的斷點續(xù)傳形式下載。

二、設置文件指針的位置:隨機讀寫,SetFilePointer函數(shù)

1.函數(shù)說明

函數(shù)原型如下

DWORD SetFilePointer(HANDLE hFile,                  // 文件句柄LONG  lDistanceToMove,         // 要移動的距離(低 32 位)PLONG lpDistanceToMoveHigh,    // 要移動的距離(高 32 位)DWORD dwMoveMethod             // 移動的起始位置
);

參數(shù) HANDLE hFile為文件句柄,必須是通過 CreateFile 打開的句柄。句柄必須具有 GENERIC_READ 或 GENERIC_WRITE 訪問權限。

參數(shù)LONG lDistanceToMove為要移動的距離(低 32 位)。如果 lpDistanceToMoveHigh 為 NULL,則這是一個有符號的 32 位值。

PLONG lpDistanceToMoveHigh指向一個 LONG 變量的指針,用于指定要移動的距離(高 32 位)。如果為 NULL,則文件指針移動范圍限制在 32 位。

DWORD dwMoveMethod指定文件指針移動的起始位置??梢允且韵轮抵?#xff1a;FILE_BEGIN:從文件開頭開始移動。FILE_CURRENT:從當前位置開始移動。FILE_END:從文件末尾開始移動。

返回值:如果函數(shù)執(zhí)行成功,返回文件指針的新位置(低 32 位)。如果函數(shù)執(zhí)行失敗,返回 INVALID_SET_FILE_POINTER??梢酝ㄟ^ GetLastError 獲取錯誤代碼。注意:高32位的值通過參數(shù)PLONG lpDistanceToMoveHigh傳出。

2.函數(shù)實例

與之前一樣,寫入如下數(shù)據(jù)

			// 寫入數(shù)據(jù)// 寫入一個數(shù)字int num = 12345; // 寫入的數(shù)據(jù)DWORD rw = 0; // 傳出的實際寫入大小bret = WriteFile(handle1, &num, sizeof(num), &rw, NULL);// 寫入一個字母char ch = 'A';bret = WriteFile(handle1, &ch, sizeof(ch), &rw, NULL);// 寫入包含中文的字符串char st[32] = "abc要好好學習!";bret = WriteFile(handle1, st, sizeof(st), &rw, NULL);if (bret){MessageBox(NULL, _T("數(shù)據(jù)寫入成功"), _T("提示"), MB_OK);}else{MessageBox(NULL, _T("數(shù)據(jù)寫入失敗"), _T("提示"), MB_OK);}CloseHandle(handle1);}

則文件中數(shù)據(jù)為
在這里插入圖片描述
想要實現(xiàn)直接讀取字符串“abc要好好學習”,即略過前面的數(shù)字123345和字符A進行讀取。

	handle1 = CreateFile(_T("D:\\新年快樂.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (handle1 != INVALID_HANDLE_VALUE) // 函數(shù)執(zhí)行成功{// 讀取數(shù)字DWORD readw = 0;// 移動文件指針位置SetFilePointer(handle1, sizeof(int) + sizeof(char), NULL, FILE_BEGIN);// 讀取字符串char read_str[32] = { 0 };bret = ReadFile(handle1, read_str, sizeof(read_str), &readw, NULL);if (bret){MessageBox(NULL, _T("數(shù)據(jù)讀入成功"), _T("提示"), MB_OK);}else{MessageBox(NULL, _T("數(shù)據(jù)讀入失敗"), _T("提示"), MB_OK);}CloseHandle(handle1);}else{DWORD dwerror = GetLastError();MessageBox(NULL, _T("文件沒有成功打開"), _T("提示"), MB_OK);}

可以看到讀取成功
在這里插入圖片描述
上述代碼是從文件開頭向后移動,移動了一個int和一個char這么多的距離,下面演示一下從文件末尾向前移動,移動那么就需要移動字符串這么多的距離。這里設置字符串長度為32字節(jié),因此只需要更改SetFilePointer這行代碼

SetFilePointer(handle1, -32, NULL, FILE_END);

同樣能夠正確讀取字符串
在這里插入圖片描述

三、 目錄的創(chuàng)建CreateDirectory

用于創(chuàng)建單一層級的目錄。建立多層級目錄需要使用函數(shù)MakeSureDirectoryPathExists。這里只介紹CreateDirectory,函數(shù)原型如下

BOOL CreateDirectory(LPCTSTR               lpPathName,          // 目錄路徑LPSECURITY_ATTRIBUTES lpSecurityAttributes // 安全屬性
);

參數(shù)LPCTSTR lpPathName為要創(chuàng)建的目錄的路徑??梢允墙^對路徑或相對路徑。
參數(shù)LPSECURITY_ATTRIBUTES lpSecurityAttributes指向 SECURITY_ATTRIBUTES 結構的指針,用于設置目錄的安全屬性。如果為 NULL,則使用默認安全屬性。

返回值:如果成功,返回 TRUE。如果失敗,返回 FALSE??梢酝ㄟ^ GetLastError 獲取錯誤碼。

以在D盤下創(chuàng)建一個學習C++的文件夾為例

CreateDirectory(_T("D://學習C++"), NULL);

文件夾創(chuàng)建成功
在這里插入圖片描述
在這里插入圖片描述
但是連續(xù)創(chuàng)建子文件夾就會出現(xiàn)問題,刪掉剛剛創(chuàng)建的“學習C++”文件夾后運行如下代碼

	BOOL bret = CreateDirectory(_T("D:\\學習C++\\123"), NULL);if (!bret){int err = GetLastError();}

可以看到err錯誤碼為3
在這里插入圖片描述
錯誤碼3對應的問題為
在這里插入圖片描述
這就是上述建立多層級目錄不可以使用CreateDirectory。

四、目錄的刪除RemoveDirectory

刪除一個現(xiàn)有的不包含任何文件的空目錄,要刪除非空目錄需要調(diào)用SHFileOperation。這里只介紹RemoveDirectory,函數(shù)聲明為

BOOL RemoveDirectory(LPCTSTR lpPathName  // 目錄路徑
);

參數(shù)LPCTSTR lpPathName為要刪除的目錄的路徑??梢允墙^對路徑或相對路徑。路徑的最大長度為 MAX_PATH(260 個字符)。

返回值:如果函數(shù)執(zhí)行成功,返回 TRUE。如果失敗,返回 FALSE??梢酝ㄟ^ GetLastError 獲取錯誤碼。

刪除D盤下的“學習C++”文件夾,文件夾內(nèi)部還有一個子文件夾123。
在這里插入圖片描述
代碼如下

	// 刪除文件目錄BOOL bret_re = RemoveDirectory(_T("D:\\學習C++"));if (!bret_re){int err = GetLastError();}

函數(shù)執(zhí)行失敗,錯誤碼為145
在這里插入圖片描述
對應的問題為
在這里插入圖片描述
這就是由于存在子文件夾導致的,如果不包含子目錄
在這里插入圖片描述
則此時上述代碼運行成功,D盤內(nèi)的文件夾“學習C++”成功刪除。


總結

Windows程序設計10:文件指針及目錄的創(chuàng)建與刪除。

http://m.aloenet.com.cn/news/1152.html

相關文章:

  • 做網(wǎng)站賺錢嗎?pageadmin建站系統(tǒng)
  • 免費建站網(wǎng)站網(wǎng)站開發(fā)需要的技術
  • 制作百度移動網(wǎng)站每日一則新聞摘抄
  • 慈利做網(wǎng)站在哪里sem和seo有什么區(qū)別
  • 微信手機網(wǎng)站開發(fā)外貿(mào)網(wǎng)站外鏈平臺
  • 蘋果電腦做網(wǎng)站的步驟seo課程培訓中心
  • 手機移動網(wǎng)絡限制網(wǎng)站武漢電腦培訓學校有哪些
  • 鄉(xiāng)鎮(zhèn)網(wǎng)站建設工作計劃國際新聞最新消息
  • wordpress mysql 配置關鍵詞優(yōu)化難度查詢
  • share poine 戶做網(wǎng)站百度網(wǎng)址大全 舊版本
  • 自己怎么做個網(wǎng)站數(shù)據(jù)分析方法
  • 成都網(wǎng)站建設公司官網(wǎng)服務營銷策劃方案
  • 長沙建網(wǎng)站的公司多少錢優(yōu)化網(wǎng)站關鍵詞優(yōu)化
  • 聯(lián)系我們網(wǎng)頁設計圖片百度seo推廣方案
  • wordpress 無法上傳文件外匯seo公司
  • 溫州外貿(mào)網(wǎng)站建設seo數(shù)據(jù)分析哪些方面
  • 校園網(wǎng)站設計與實現(xiàn)優(yōu)化seo深圳
  • 自己做的電商網(wǎng)站要多少錢如何制作網(wǎng)頁鏈接
  • 醫(yī)院網(wǎng)站HTML5辦公軟件速成培訓班
  • 高端網(wǎng)站seo搜索引擎招聘
  • 網(wǎng)站編輯器失效無錫百度推廣開戶
  • 網(wǎng)站注冊頁面跳出怎么做移動廣告平臺
  • 百度站長查詢工具網(wǎng)站制作建設
  • 重慶奉節(jié)網(wǎng)站建設公司哪家好適合推廣的app有哪些
  • wordpress隨機彈窗插件網(wǎng)站seo站群軟件
  • 辦公室裝修設計圖片信息流優(yōu)化師簡歷怎么寫
  • 網(wǎng)站沒有域名設置嗎騰訊會議開始收費
  • kotlin做網(wǎng)站谷歌瀏覽器下載手機版
  • dede做購物網(wǎng)站發(fā)帖推廣平臺
  • 百度官網(wǎng)網(wǎng)站登錄seo公司推廣宣傳