MINGW v. 8.0
-- C 编译器标识是 GNU 10.2.0
-- CXX 编译器标识是 GNU 10.2.0
-- 检查工作 C 编译器:P:/MSYS2/mingw64/bin/gcc.exe
-- 检查工作 C 编译器:P:/MSYS2/mingw64/bin/gcc.exe - 工作
试图运行:
#include <iostream>
#include <fstream>
#include <filesystem>
namespace fs = std::filesystem;
constexpr auto * f1 ="C:\\TEMP\\fred_test.txt";
constexpr auto * f2 ="C:\\TEMP\\fred_test.txt~";
void create_file(char const* p){
std::ofstream ofs1{p};
}
int main() {
try{
fs::remove(f1);
fs::remove(f2);
create_file(f1);
create_file(f2);
fs::copy_file(f1, f2, fs::copy_options::overwrite_existing);
std::cout << "success" << std::endl;
} catch (fs::filesystem_error const& fe) {
std::cout << fe.what() << std::endl;
}
}
给出以下输出:
filesystem error: cannot copy file: File exists [C:\TEMP\fred_test.txt] [C:\TEMP\fred_test.txt~]
使用 msvc:
success
使用以下命令运行 CMake:P:\MSYS2\mingw64\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:[***]\test_fs
cmake_minimum_required(VERSION 3.17)
project(test_fs)
set(CMAKE_CXX_STANDARD 20)
add_executable(test_fs main.cpp)
有人也可以重现这个吗?