当前位置:首页 » 文件传输 » cftp下载
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

cftp下载

发布时间: 2022-02-10 13:17:31

㈠ windows环境下c语言支持ftp和http多线程下载的客户端

下面的程序,编译之后,你可以运行很多个实例,目前我将文件写在了D:\1.txt,每个程序写1000行数据,这些值你可以自己更改(比如 写在C:,每个程序写10000行等),等程序都写完后,你可以去文件中查看写文件的结果。补充一下,我是在VC6.0环境中写的,所以windows.h,如果你不是在这个环境中的话,可能需要修改一些定义,比如DWORD等。其他的API都是windows平台提供的API;
#include <stdio.h>
#include "windows.h"
int main()
{
//获取进程ID,因为你希望是多个进程运行同时写一个文件,所以,我们打印出进程ID
DWORD dwProcessID = GetCurrentProcessId();

//初始化我们要写入文件中的内容,及该内容长度;
char szContent[100] = ;
sprintf(szContent,"process[%u] write file\r\n",dwProcessID);
DWORD dwContentLen = strlen(szContent);

//创建互斥量,这样可以进行进程间的互斥,当然用这个也可以做线程间的互斥
HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");
if (NULL == hMutex)
{
printf("[%u]Create/Open Mutex error!\r\n",dwProcessID);
return 1;
}

//创建或打开文件
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
printf("[%u]Creat/Open file error!\r\n",dwProcessID);
return 1;
}

//循环写入文件
for(int i = 0; i < 1000 ; i++)
{
//等待临界资源,即锁定文件
WaitForSingleObject(hMutex,INFINITE);
printf("Process[%u] Get the signal\r\n",dwProcessID);
DWORD len = 0;

//因为是共享写文件,即多个程序写一个文件,所以一定要将文件指针偏移到尾部
SetFilePointer(hFile,0,NULL,FILE_END);

//写入文件
BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);
if (rnt == FALSE)
{
printf("Process[%u] Fail to write file\r\n",dwProcessID);
}

//释放互斥量,解除锁定
ReleaseMutex(hMutex);

//加个Sleep便于我们中间观察结果
Sleep(30);
}
CloseHandle(hMutex);
CloseHandle(hFile);
return 0;
}

应你要求,我把AIP中的宏定义解释如下:
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,//表示程序对该文件有读和写的权限
FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多个程序共享读和写的权限
NULL,
OPEN_ALWAYS,//表示打开该文件,如果该文件不存在,则创建该文件
FILE_ATTRIBUTE_ARCHIVE,//文件的属性为存档
NULL);

WaitForSingleObject(hMutex,INFINITE);
//INFINITE表示永远等待,直到hMutex有信号为止

SetFilePointer(hFile,0,NULL,FILE_END);
//FILE_END表示从文件尾部开始偏移;实际此举就是将文件指针偏移到文件尾部;
另外,虚机团上产品团购,超级便宜

㈡ vc 编程 CFtpConnection类的getfile函数问题 !

你可以在返回失败后调用GetLastError看看返回哪个错误码,然后去查下这个错误码对应的错误原因是什么,这样大家也好大致定位错误原因。

㈢ bat批量下载FTP

首先需要先登录Ftp,然后获取该www文件夹下面的文件列表,再逐一下载即可了。
下载一款ftp工具,比如WinScp,方便快捷呢。

㈣ C语言实现从FTP下载、上传文件

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。
1.C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。

㈤ c++编的FTP客户端 BOOL CFTPClient::MoveFile()可以下载但不能上传

把所有修改m_fc的地方找到。看看哪个过程里把m_fc改成2了。

㈥ 以c开头的ftp专用下载工具什么

FLASHGET使用方法:(先打开FLASHGET)
1.在某链接点上单击鼠标右健,选择用FLASHGET下载,然后就弹出一个对话框,其中:另存为指的是把文件放在哪里,重命名指下载后你自己为这个文件取的名字,最后点确定就OK了.
2.在某链接点上单击鼠标右健.选择复制快捷方式,再打开FLASHGET,
点击任务中的新健下载任务,弹出对话框,与上面一样操作.(这种方法也可以单独下载一个网页)

㈦ C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!

  1. 先后使用InternetOpen和InternetConnect打开连接。
  2. 使用CreateFile函数打开本地文件。
  3. 使用FtpOpenFile函数打开远程文件。
  4. 分别使用InternetReadFile和ReadFile函数读取 FTP 或本地文件。
  5. 分别使用InternetWriteFile和WriteFile函数写入 FTP 或本地文件。
  6. 使用CloseHandle函数关闭本地文件句柄。
  7. 使用InternetCloseHandle函数关闭 FTP 文件句柄。

㈧ c#实现FTP下载

FtpWebRequestftpRequest=(FtpWebRequest)WebRequest.Create("ftp://.com/2010/1.exe");//ftp://.com/2010/1.exe是你要下载ftp文件地址
ftpRequest.Credentials=newNetworkCredential("user","user");//前一个user为用户名,后一个为密码

㈨ Linux/unix环境下C调用FTP如何进行

可以使用管道,下面是我的程序,你可以参考:

#include <stdio.h>
main(int argc, char *argv[]){
FILE *fp;
char str[255];
if (argc!=5){
printf("%s\n%s\n",
"Usage:",
" auto_ftp <ip> <user> <pass> <filename>");
exit();
}
if ((fp=popen("ftp -n","w"))==NULL) {
puts("Run ftp fail !");
exit();
}
//while ((fgets(str,255,fp))!=NULL) puts(str);
fprintf(fp,"open %s\n",argv[1]);
fprintf(fp,"user %s %s\n",argv[2],argv[3]);
fprintf(fp,"prompt\n");
fprintf(fp,"mget *%s\n",argv[4]);
fprintf(fp,"bye\n");
pclose(fp);
}

以上程序编译为auto_ftp,能够自动从命令行指定的IP、用户、密码下载指定的文件。

补充:
上载、下载都是一样的,都是通过管道调用ftp工具,C程序只需要发送命令即可,这些命令可以是任何命令,我程序中是GET,你也可以写PUT。