我要在两个软件之间用nmftp传送文件的例子!(100分)

  • 主题发起人 主题发起人 wlyft
  • 开始时间 开始时间
可以看一下NMFTP控件的"Sendfile"方法,或者在DELPHI的DEMO中也有这方面的例子。
我就是参考这个例程编写过这样的代码。
 
那个例是连到服务器的,我要在是两个软件之间的!
然道nmftp也能做为服务器吗?[:D]
 
给你一个思路:
1.使用Web Server(PWS,IIS等)的FTP功能。使两个程序共用一个FTP目录
2.设置好nmftp的host,port等属性,连通就行了。
3.ChangeDirectory到共用的目录
4.想干什么?随便。只要你有权限。
 
两个软件之间传送文件用winsock API不是很好吗?
为什么用nmftp叻?ftp一定是要一个server端,一个client端的,那样不是
太麻烦?还要登陆。
 
是在两台机子上的!
 
不然QQ相互传文件是用什么的?
 
//函數功能:把ftp 失敗的附件ftp上去
//傳入參數:無
//返回值:是否成功

bool __fastcall TFMain::SendftpTemp()//把ftp 失敗的附件ftp上去
{
String ftpTemp=ExtractFilePath(Application->ExeName) + "ftpTemp";
if(!DirectoryExists(ftpTemp))
{
return false;
}
TSearchRec sr;
int iAttributes = 0;
iAttributes = faDirectory ;
TSearchRec Asr;
int AAttributes = faAnyFile;
if (FindFirst(ftpTemp+"//*.*", iAttributes, sr) == 0)//查找子目錄
{
do

if (((sr.Attr & iAttributes) ==sr.Attr)&&(sr.Name!=".")&&(sr.Name!=".."))
{
//查找子目錄下的所有文件

if(DirectoryExists(ftpTemp+"//"+sr.Name +"//Main"))
{
//ftp主檔和Pdf檔
if (FindFirst(ftpTemp+"//"+sr.Name +"//Main//*.*", AAttributes, Asr) == 0)
{
NMFTP1->MakeDirectory("/"+sr.Name);
NMFTP1->MakeDirectory("/"+sr.Name+"/Main");
do
if (((Asr.Attr & AAttributes) ==Asr.Attr)&&(Asr.Name!=".")&&(Asr.Name!=".."))
{
NMFTP1->ChangeDir ("/"+sr.Name+"/Main");

int FileHandle,FSize;
String LocalFile=ftpTemp+"//"+sr.Name +"//Main//"+Asr.Name;
String Remotefile=Asr.Name;
RE->Lines->Add(DateTimeToStr(Now())+":FTP:"+LocalFile);
FileHandle=FileOpen(LocalFile,fmOpenRead);
FSize=FileSeek(FileHandle,0,2);
FileClose(FileHandle);
NMFTP1->Allocate (FSize);
NMFTP1->Upload (LocalFile,Remotefile);
CGPress->AddProgress(2);
Application->ProcessMessages();

}
while (FindNext(Asr)==0);
FindClose(Asr);
}
}
//ftp附件檔
if(DirectoryExists(ftpTemp+"//"+sr.Name +"//Attach"))
{

if (FindFirst(ftpTemp+"//"+sr.Name +"//Attach//*.*", AAttributes, Asr) == 0)
{
NMFTP1->MakeDirectory("/"+sr.Name+"/Attach");
do
if (((Asr.Attr & AAttributes) ==Asr.Attr)&&(Asr.Name!=".")&&(Asr.Name!=".."))
{
NMFTP1->ChangeDir ("/"+sr.Name+"/Attach");

int FileHandle,FSize;
String LocalFile=ftpTemp+"//"+sr.Name +"//Attach//"+Asr.Name;
String Remotefile=Asr.Name;
RE->Lines->Add(DateTimeToStr(Now())+":FTP:"+LocalFile);
FileHandle=FileOpen(LocalFile,fmOpenRead);
FSize=FileSeek(FileHandle,0,2);
FileClose(FileHandle);
NMFTP1->Allocate (FSize);
NMFTP1->Upload (LocalFile,Remotefile);
CGPress->AddProgress(2);
Application->ProcessMessages();

}
while (FindNext(Asr)==0);
FindClose(Asr);
}
}


}


while (FindNext(sr)==0);
FindClose(sr);
}
MyDeleteTree(ftpTemp);
NMFTP1->Disconnect();
return true;
}
 
看不懂!是不是delphi的?
这好像还是要服务器端的吧!
 
C:/Program Files/Borland/Delphi5/Demos/FastNet/Strm/strmdemo.dpr
 
多人接受答案了。
 
后退
顶部