操作NTFS磁碟上檔案需要注意的地方

2021-06-05 13:32:04 字數 532 閱讀 2191

今天我打算寫乙個測試程式,需要讀取和寫入檔案,想往常一樣,寫了如下**

std::wstring sourcefilename = l"f:\\1.txt";

//開啟原始檔

handle hsourcefile = createfile(sourcefilename.c_str(),generic_all,null,null,open_existing,null,null);

卻發現訪問檔案失敗,錯誤碼為5(拒絕訪問)。嘗試訪問這個磁碟下同樣的檔案也會失敗。而後分析出這個磁碟為ntfs,會不會和這個有關係?於是我訪問了另乙個fat32磁碟的檔案,同樣用generic_all標誌位,訪問成功。

經測試,預設情況下(檔案的安全性為預設,檔案的安全屬性為null),用generic_all訪問ntfs分割槽上已存在的檔案會失敗,而如果用generic_read、generic_write甚至generic_execute都會成功。而如果訪問檔案不存在,則會成功(若檔案存在,即使用create_alwarys建立檔案也會失敗)

C 檔案操作需要注意的幾點

1 每次開啟乙個檔案後記得一定要檢查檔案是否開啟成功 這點不僅是乙個好習慣,同樣對我們程式的除錯也很有幫助。否則我們累了半天也沒有找出程式為什麼沒有得出我們想要的結果。最後才發現原來是檔案都沒開啟。這豈不冤枉。呵呵。2 如果我們準備重用已存在的流物件,我們必須在每次用完檔案後記得關閉 close 和...

C 檔案操作需要注意的事項(C 檔案相關)

static宣告的函式放在main函式裡時只有當main函式執行結束時才會呼叫static函式析構 檔案open缺省會在析構的時候close 以下情況寫入檔案會造成檔案資訊丟失,因為fstream也是基於快取的,m f include include include class log log vo...

使用Dpm保護組保護同一磁碟上檔案的限制

上週,某一台伺服器本地存放了2t的備份資料,希望通過兩個保護組分別來保護這些資料 1t業務資料,1t財務資料,基礎架構部門只分配了一塊2t磁碟 所以在同乙個磁碟上,我將2t的資料放到不同資料夾中,然後嘗試建立不同的保護組來進行保護,發現行不通。如圖,c盤有protect01和protect02兩個資...