首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >断电时不完整的mkdir和copyFile

断电时不完整的mkdir和copyFile
EN

Stack Overflow用户
提问于 2015-06-25 22:14:49
回答 1查看 93关注 0票数 0

我有一个应用程序,可以创建一个目录并将文件复制到其中。正常情况下,这工作正常。但是,如果窗口正确关闭并且断电,文件将不会始终可用或不完整。

我的操作系统是Windows POSReady7 (版本6.1 Build 7601: Service Pack1),并且在硬盘上禁用了“写缓存”选项。我有一个C++应用程序。我也使用了_flushall,但它不起作用。

我已经写了一个测试应用程序,我可以在其中看到问题。我启动应用程序,在输出完成后等待十秒钟,然后拔下电源。文件在重新启动后不可用。

下面是我的代码:

代码语言:javascript
复制
#include "stdafx.h"
#include <iostream>
#include <direct.h>
#include <string>
#include <Windows.h>
#include <atlstr.h>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    string csPathName("D:\\temp\\FileCopyTest\\");
    int mkRetValue = _mkdir( csPathName.c_str() );
    cout << "Create directory " << csPathName.c_str() << " with return value " << mkRetValue << endl;
    BOOL copyRetValue = CopyFileEx( _T("D:\\temp\\test.txt"), _T("D:\\temp\\FileCopyTest\\test.txt"), nullptr, nullptr, FALSE, COPY_FILE_NO_BUFFERING );
    cout << "Copy file, return value " << copyRetValue << endl;
    int flushRetValue = _flushall();
    cout << "flush files: " << flushRetValue << endl;
    char c;
    cin >> c;
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2015-06-25 22:23:23

你有没有试过把副本放在作用域里?

代码语言:javascript
复制
{
CopyFileEx( _T("D:\\temp\\test.txt"), _T("D:\\temp\\FileCopyTest\\test.txt"), nullptr, nullptr, FALSE, COPY_FILE_NO_BUFFERING );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31052918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档