我知道ofstream
在Windows 7隱藏文件上不起作用。ofstream不能在Windows 7隱藏文件上工作
這是快速測試代碼。
#include <fstream>
#include <iostream>
#include <tchar.h>
#include <windows.h>
int main() {
{
std::ifstream file2(_T("c:\\a.txt"));
if (file2.is_open()) {
std::cout << "ifstream open" << std::endl;
} else {
std::cout << "ifstream not open!" << std::endl;
}
}
// SetFileAttributes(_T("c:\\a.txt"), FILE_ATTRIBUTE_NORMAL);
SetFileAttributes(_T("c:\\a.txt"), FILE_ATTRIBUTE_HIDDEN);
{
std::ofstream file(_T("c:\\a.txt"));
if (file.is_open()) {
std::cout << "ofstream open" << std::endl;
} else {
std::cout << "ofstream not open!" << std::endl;
}
}
getchar();
}
這裏是我的。如果我使用FILE_ATTRIBUTE_NORMAL
,ofstream
將成功打開越來越
ifstream open
ofstream not open!
輸出。
我不以管理員身份運行程序。但是,我確實使用了以下鏈接器選項。
有轉沒有爲啓用用戶帳戶控制(UAC)是很重要的,如果我們不啓動應用程序作爲管理員。操作系統將幫助我們將實際文件寫入C:\Users\yccheok\AppData\Local\VirtualStore\a.txt
而不是保護C:\
ofstream
是否在Windows 7隱藏文件失敗,是預期的行爲?
當你說你使用「下面的鏈接器選項」時,這七個鏈接器選項中的哪一個是你指的那個選項,爲什麼你認爲這很重要?虛擬商店是否真的與這個問題有關? –
我更新了這些信息,以幫助您理解爲什麼對於UAC轉向否重要。 –
您是否在打開'ofstream'之前嘗試關閉'ifstream'? –