怎样用DOS命令向FTP文件夹里复制文件

怎样用DOS命令向FTP文件夹里复制文件,第1张

我目前只会一种方法:

先用net use映射目标FTP文件夹到本雹哗地,再复制文件进去。

比如你现在192.1.1.103的地址用户名为uername,密码为password,你要将1.txt复制到该ip下的share文件夹,

那命令就是

::映射文件夹到本地

net use z: \\192.168.1.15\share$ password /user:uername

::如果FTP没有密厅渗码的话就用net use z: \\192.168.1.15\share$ "" /user:admin

::复制文件到目标文件夹

copy c:\1.txt z:\1.txt /y

::删除映射

net use z: /del

我现在没有FTP可以试验,源伏行如果上述命令有错误的话,请谅解,net use很简单的,你调试一下就好了~~

C语言中没有FtpPutFile函数,这是VB中的函数。

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)行为,必须与此服务器建立适当的连接。

例程:

#include <winsock.h>

#include <stdio.h>

WORD wVersionRequested

WSADATA wsaData

char name[255] //name里是本机名

CString ip //本机IP

PHOSTENT hostinfo

wVersionRequested = MAKEWORD( 1, 1 )

if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )

{

if( gethostname ( name, sizeof(name)) == 0)

  {

if((hostinfo = 拦蔽gethostbyname(name)) != NULL)

{

ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list)

}

}

WSACleanup( )

}  

// AfxMessageBox(name)//name里是本机名

// AfxMessageBox(ip) //ip中是本机IP

CStdioFile File

File.Open("C://ip.txt",CFile::modeCreate|CFile::modeReadWrite)

//如果文件事先不存在的话,就需要CFile::modeCreate,否则就不需要。

File.WriteString(ip+":"+"8000")

File.Close()  //注意,这里一定要把文件关闭,否则不能成功上传

CString host="204.45.67.11"  

  CString user="19337"  

  CString password="1234567"  

  TRACE(":%s:%s:%s:%s/n", host,   

user, password, "C://ip.txt")  

  CInternetSession session  

(AfxGetApp()->m_pszAppName)  

  CFtpConnection* pConn = NULL  

  pConn = session.GetFtpConnection (host,user,password)  

  if (pConn) {  

if (!pConn->PutFile("C://ip.txt","ip.txt"))

{  

MessageBox("传送文件失败??")  

} else {  

MessageBox("传送文件成功!")  

}  

pConn->Close()  

delete pConn  

session.Close()  

  } else {  

MessageBox("Cannot Connect")  

  }

#include "stdio.h"

#include "碧姿stdlib.h"

#include "string.h"

struct PCB {

char NAME[10] /*进程名*/

int ROUND /*进程轮转时间片*/

int REACHTIME /*进程到达时间*/

int CPUTIME /*进程占用CPU时间*/

int COUNT /*计数器*/

int NEEDTIME /*进程完成还要的CPU时间*/

char STATE /*进程的状态*/

struct PCB *NEXT /*链指针*/

}

struct LINK { /*PCB的链结构*/

struct PCB *RUN /*当前运行进程指针*/

struct PCB *READY /*就绪队列头指针*/

struct PCB *TAIL /*就绪队列尾指针*/

struct PCB *FINISH /*完成队列头指针*/

}

void INIT(LINK *) /*对PCB的链结构初始化*/

void INSERT(LINK *) /*将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/

void FIRSTIN(LINK *) /*将就绪队列中的第一个进程投入运行*/

void PRINT(LINK *) /*打印每执行一个时间片后的所有进程的状态*/

void PR(PCB *) /*打印一个进程的状态*/

int CREATE(LINK *,int) /*创建新的进程斗芦*/

void ROUNDSCH(LINK *) /*按时间片轮转法调度进程*/

void main() {

LINK pcbs

int i

INIT(&pcbs)

i=0

printf("创建5个进程\n\n")

while(i<5) {

if(CREATE(&pcbs,i+1)==1) {

printf("进程已创建\n\n")

i++

}

else

printf("进程创建失败\n\n")

}

FIRSTIN(&pcbs)

ROUNDSCH(&pcbs)

}

void ROUNDSCH(LINK *p) {

PCB *pcb

while(p->RUN!=NULL) {

pcb=(PCB *)malloc(sizeof(PCB))

strcpy(pcb->NAME,p->RUN->NAME)

pcb->ROUND=p->RUN->ROUND

pcb->REACHTIME=p->RUN->REACHTIME

pcb->CPUTIME=p->RUN->CPUTIME

pcb->COUNT=p->RUN->COUNT

pcb->NEEDTIME=p->RUN->NEEDTIME

pcb->STATE=p->RUN->STATE

pcb->NEXT=p->RUN->NEXT

pcb->CPUTIME++

pcb->NEEDTIME--

pcb->COUNT++

if(pcb->NEEDTIME==0) {

pcb->NEXT=p->FINISH->NEXT

p->FINISH->NEXT=pcb

pcb->STATE='F'

p->RUN=NULL

if(p->READY!=p->TAIL)

FIRSTIN(p)

}

else {

p->RUN=pcb

if(pcb->COUNT==pcb->ROUND) {

pcb->COUNT=0

if(p->READY!=p->TAIL) {

pcb->STATE='W'

INSERT(p)

FIRSTIN(p)

}

}

}

PRINT(p)

}

}

void INIT(LINK *p) {

p->RUN=NULL

p->TAIL=p->空慧带READY=(PCB *)malloc(sizeof(PCB))

p->READY->NEXT=NULL

p->FINISH=(PCB *)malloc(sizeof(PCB))

p->FINISH->NEXT=NULL

}

int CREATE(LINK *p,int n) {

PCB *pcb,*q

pcb=(PCB *)malloc(sizeof(PCB))

flushall()

printf("请输入第%d个进程的名称:\n",n)

gets(pcb->NAME)

printf("请输入第%d个进程的轮转时间片数:\n",n)

scanf("%d",&(pcb->ROUND))

printf("请输入第%d个进程的到达时间:\n",n)

scanf("%d",&(pcb->REACHTIME))

pcb->CPUTIME=0

pcb->COUNT=0

printf("请输入第%d个进程需运行的时间片数:\n",n)

scanf("%d",&(pcb->NEEDTIME))

pcb->STATE='W'

pcb->NEXT=NULL

if(strcmp(pcb->NAME,"")==0||pcb->ROUND<=0||pcb->NEEDTIME<=0) /*输入错误*/

return 0

q=p->READY

while(q->NEXT!=NULL&&q->NEXT->REACHTIME<=pcb->REACHTIME)

q=q->NEXT

pcb->NEXT=q->NEXT

q->NEXT=pcb

if(pcb->NEXT==NULL)

p->TAIL=pcb

return 1

}

void FIRSTIN(LINK *p) {

PCB *q

q=p->READY->NEXT

p->READY->NEXT=q->NEXT

q->NEXT=NULL

if(p->READY->NEXT==NULL)

p->TAIL=p->READY

q->STATE='R'

p->RUN=q

}

void INSERT(LINK *p) {

PCB *pcb

pcb=(PCB *)malloc(sizeof(PCB))

strcpy(pcb->NAME,p->RUN->NAME)

pcb->ROUND=p->RUN->ROUND

pcb->REACHTIME=p->RUN->REACHTIME

pcb->CPUTIME=p->RUN->CPUTIME

pcb->COUNT=p->RUN->COUNT

pcb->NEEDTIME=p->RUN->NEEDTIME

pcb->STATE=p->RUN->STATE

pcb->NEXT=p->RUN->NEXT

p->TAIL->NEXT=pcb

p->TAIL=pcb

p->RUN=NULL

pcb->STATE='W'

}

void PRINT(LINK *p) {

PCB *pcb

printf("执行一个时间片后的所有进程的状态:\n\n")

if(p->RUN!=NULL)

PR(p->RUN)

if(p->READY!=p->TAIL) {

pcb=p->READY->NEXT

while(pcb!=NULL) {

PR(pcb)

pcb=pcb->NEXT

}

}

pcb=p->FINISH->NEXT

while(pcb!=NULL) {

PR(pcb)

pcb=pcb->NEXT

}

}

void PR(PCB *p) {

printf("进程名:%s\n",p->NAME)

printf("进程轮转时间片:%d\n",p->ROUND)

printf("进程到达时间:%d\n",p->REACHTIME)

printf("进程占用CPU时间:%d\n",p->CPUTIME)

printf("计数器:%d\n",p->COUNT)

printf("进程完成还要的CPU时间:%d\n",p->NEEDTIME)

printf("进程的状态:%c\n\n",p->STATE)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8168097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存