在 C++ 中,你可以使用文件流(例如 std::ifstream
和 std::ofstream
)來檢查文件是否存在,并根據條件決定是否覆蓋文件
#include<iostream>
#include <fstream>
#include<string>
bool fileExists(const std::string& filename) {
std::ifstream file(filename);
return file.good(); // 如果文件存在且可讀,返回 true
}
void writeToFile(const std::string& filename, const std::string& content, bool overwrite) {
if (!overwrite && fileExists(filename)) {
std::cout << "文件已存在,不會覆蓋。"<< std::endl;
return;
}
std::ofstream file(filename);
if (file.is_open()) {
file<< content;
file.close();
std::cout << "文件已寫入。"<< std::endl;
} else {
std::cout << "無法打開或創建文件。"<< std::endl;
}
}
int main() {
std::string filename = "example.txt";
std::string content = "Hello, World!";
bool overwrite = false; // 設置為 true 以覆蓋文件,設置為 false 以避免覆蓋
writeToFile(filename, content, overwrite);
return 0;
}
在這個示例中,我們首先定義了一個名為 fileExists
的函數,該函數接受一個文件名參數并檢查文件是否存在。接下來,我們定義了一個名為 writeToFile
的函數,該函數接受文件名、要寫入的內容以及一個布爾值 overwrite
作為參數。如果 overwrite
為 true
,則函數將始終覆蓋文件;如果 overwrite
為 false
,則函數將在文件存在時避免覆蓋文件。最后,在 main
函數中,我們調用 writeToFile
函數并傳遞相應的參數。