用NMStrm来传送文件,接收方如何取得源文件名啊?

macri 2006-04-29 04:11:07
下边的代码在接收保存文件时,没有文件名,要自己输入一个,如何自动取得源文件名

void __fastcall TMainForm::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
//保存文件对话框
if(SaveDialog1->Execute())
{
//如果目标文件存在则删除
if (FileExists(SaveDialog1->FileName))
DeleteFile(SaveDialog1->FileName);
TFileStream *MyFStream;
//建立文件
MyFStream = new TFileStream(SaveDialog1->FileName, fmCreate);
try
{
MyFStream->CopyFrom(strm, strm->Size);
ShowMessage("接收成功!文件另存为"+SaveDialog1->FileName);
}
catch(...)
{
ShowMessage("接收失败!");
}
//释放
MyFStream->Free();
}

}
...全文
252 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大伟 2007-03-12
  • 打赏
  • 举报
回复
发送端设置:
NMStrm1->Host = Edit2->Text;
NMStrm1->FromName = Edit1->Text;//你的文件名
NMStrm1->PostIt(MyFStream);

接收端
void __fastcall TFormMain::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
if (FileExists(".\\" + sFrom))
DeleteFile(".\\" + sFrom);
TFileStream *MyFStream;
MyFStream = new TFileStream(".\\" + sFrom, fmCreate);
try
{
MyFStream->CopyFrom(strm, strm->Size);
}
catch(...)
{
}
MyFStream->Free();
Memo1->Lines->Add(sFrom.c_str());
}
//---------------------------------------------------------------------------
still_alive 2006-08-04
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4920/4920911.xml?temp=.1143305
我已经解决了,上面是我发问题,不过还有点小错误,你试着修改一下吧
如果不会修改再找我,我把完整的程序发给你,主要是现在方便,代码不再身边呵呵
zyyoung 2006-07-27
  • 打赏
  • 举报
回复
const AnsiString sFrom
这个参数就上吧,我想
macri 2006-04-29
  • 打赏
  • 举报
回复
哪位大侠给个完整的程序嘛,主要是提示界面要友好。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧