中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

用dw制作個(gè)介紹家鄉(xiāng)網(wǎng)站煙臺(tái)網(wǎng)站建設(shè)

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

文章目錄

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


前言

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


一、文件指針是什么?

文件指針主要用于文件的讀和寫(xiě)。打開(kāi)一個(gè)文件后,默認(rèn)就與之產(chǎn)生了一個(gè)內(nèi)部的記錄文件位置的指針,用于指示當(dāng)前的讀寫(xiě)位置。當(dāng)進(jìn)行了文件的讀寫(xiě)操作后,指針會(huì)自動(dòng)往后移動(dòng)。讀寫(xiě)了多少字節(jié),就會(huì)往后移動(dòng)多少字節(jié)。默認(rèn)情況下可能我們也不需要關(guān)心文件的指針,因?yàn)槲募闹羔樜恢枚际悄J(rèn)自動(dòng)控制的。當(dāng)你想要從一個(gè)文件的指定位置進(jìn)行讀寫(xiě)的時(shí)候就需要用到文件指針。如大文件的斷點(diǎn)續(xù)傳形式下載。

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

1.函數(shù)說(shuō)明

函數(shù)原型如下

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

參數(shù) HANDLE hFile為文件句柄,必須是通過(guò) CreateFile 打開(kāi)的句柄。句柄必須具有 GENERIC_READ 或 GENERIC_WRITE 訪問(wèn)權(quán)限。

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

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

DWORD dwMoveMethod指定文件指針移動(dòng)的起始位置。可以是以下值之一:FILE_BEGIN:從文件開(kāi)頭開(kāi)始移動(dòng)。FILE_CURRENT:從當(dāng)前位置開(kāi)始移動(dòng)。FILE_END:從文件末尾開(kāi)始移動(dòng)。

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

2.函數(shù)實(shí)例

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

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

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

	handle1 = CreateFile(_T("D:\\新年快樂(lè).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;// 移動(dòng)文件指針位置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("文件沒(méi)有成功打開(kāi)"), _T("提示"), MB_OK);}

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

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

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

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

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

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

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

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

以在D盤(pán)下創(chuàng)建一個(gè)學(xué)習(xí)C++的文件夾為例

CreateDirectory(_T("D://學(xué)習(xí)C++"), NULL);

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

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

可以看到err錯(cuò)誤碼為3
在這里插入圖片描述
錯(cuò)誤碼3對(duì)應(yīng)的問(wèn)題為
在這里插入圖片描述
這就是上述建立多層級(jí)目錄不可以使用CreateDirectory。

四、目錄的刪除RemoveDirectory

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

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

參數(shù)LPCTSTR lpPathName為要?jiǎng)h除的目錄的路徑。可以是絕對(duì)路徑或相對(duì)路徑。路徑的最大長(zhǎng)度為 MAX_PATH(260 個(gè)字符)。

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

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

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

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


總結(jié)

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

http://www.risenshineclean.com/news/1152.html

相關(guān)文章:

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