首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

MOVE 文件出错解决方案

2012-03-30 
MOVE 文件出错显示:“无法读源文件或磁盘”。代码如下,请各位大大帮忙解决,谢谢了!boolMyMoveFiles(AnsiStrin

MOVE 文件出错
显示:“无法读源文件或磁盘”。
代码如下,请各位大大帮忙解决,谢谢了!

 bool MyMoveFiles(AnsiString FromFile,AnsiString ToFile)  
{
  SHFILEOPSTRUCT op;
  op.hwnd = NULL;
  op.wFunc = FO_MOVE;
  op.pFrom = FromFile.c_str();
  op.pTo = ToFile.c_str();
  op.fFlags = FOF_NOCONFIRMATION;

  int result = SHFileOperation(&op);
  return (result == 0) ? true : false;
 }

void __fastcall TLanLogUpload::Button2Click(TObject *Sender)
{
 if( MyMoveFiles(MoveFileName+"\0",LogBackUpPath+"\0") == true)  
  {
  LogBkFlag->Text = "PASS";
  LogBkFlag->Color = clGreen;
  Sleep(100);
  }
  else
  {
  LogBkFlag->Text = "FAIL";
  LogBkFlag->Color = clRed;
  }
}
//MoveFileName 是当前的绝对路径的文件名 LogBackUpPath 是保存路径是对的。 
问题是同一个文件有的时候可以移动过去,有时候就不可以,请问大大,这会是什么原因?


[解决办法]
是不是文件被其他应用程序占用?或者看看是不是杀毒软件惹得祸
[解决办法]
MyMoveFiles改成下面试试:

C/C++ code
#include <stdio.h>#include <tchar.h>bool MyMoveFiles(AnsiString FromFile, AnsiString ToFile){    char szFrom[MAX_PATH], szTo[MAX_PATH];    memset(szFrom, 0x0, MAX_PATH);    memset(szTo, 0x0, MAX_PATH);    strcpy(szFrom, FromFile.c_str());    strcpy(szTo, ToFile.c_str());    SHFILEOPSTRUCTA op;    op.hwnd = NULL;    op.wFunc = FO_MOVE;    op.pFrom = szFrom;    op.pTo = szTo;    op.fFlags = FOF_NOCONFIRMATION;    return SHFileOperation(&op) == 0;} 

热点排行