当前位置: 技术问答>linux和unix
ftp用代码创建文件夹出错
来源: 互联网 发布时间:2016-09-24
本文导语: hi all: 我想通过自己的代码在ftp上创建一个文件夹。用的是libloftp库。 directory的值为“test” "ftp\test" "ftp/test" "/home/ftp/ftp/test"(分别测试的) sprintf(buffer, "MKD %sn", directory); write(sck, buffer, strlen(buffer)) 这样在ftp上...
hi all:
我想通过自己的代码在ftp上创建一个文件夹。用的是libloftp库。
directory的值为“test” "ftp\test" "ftp/test" "/home/ftp/ftp/test"(分别测试的)
sprintf(buffer, "MKD %sn", directory);
write(sck, buffer, strlen(buffer))
这样在ftp上面创建一个目录有问题吗?
不过执行我的程序后,提示550 create directory failed.
我直接用ftp localhost登录后,用mkdir创建就没问题,可以正常创建。
vsftpd的目录为/home/ftp.不过通过网上的说法,在这个目录里面无法创建文件夹,所以我在ftp目录里面又创建了ftp目录。修改其权限为777.
那么我的directory该如何传值呢?用上面的测试的都不对
我想通过自己的代码在ftp上创建一个文件夹。用的是libloftp库。
directory的值为“test” "ftp\test" "ftp/test" "/home/ftp/ftp/test"(分别测试的)
sprintf(buffer, "MKD %sn", directory);
write(sck, buffer, strlen(buffer))
这样在ftp上面创建一个目录有问题吗?
不过执行我的程序后,提示550 create directory failed.
我直接用ftp localhost登录后,用mkdir创建就没问题,可以正常创建。
vsftpd的目录为/home/ftp.不过通过网上的说法,在这个目录里面无法创建文件夹,所以我在ftp目录里面又创建了ftp目录。修改其权限为777.
那么我的directory该如何传值呢?用上面的测试的都不对
|
那个path的值是要你自己输入的,是个绝对路径或相对路径,比如说:你要在/home/用户名 下建立一个名为a的文件夹,那么你的path值就为:/home/用户名/a,,,,,或者是相对路径,你在进入/home/用户名 之后:
你的path值可以为a。
|
用libftp试试,那是我见过的最简单的ftp库
|
你的命令构造有误,按照FTP协议,所有的命令都以rn结尾。
sprintf(buffer, "MKD %srn", directory);
sprintf(buffer, "MKD %srn", directory);
|
下面是我写的:编译通过能用:
//mkd,在所在路径中创建目录 函数
void ftp_creat_mkd(char *path,int control_sockfd)
{
char sendline[1024];
char recvline[1024];
zeromery(sendline,1024);
zeromery(recvline,1024);
int recvbytes,sendbytes;
int issuccess;
strcat(sendline,"MKD ");
strcat(sendline,path);
strcat(sendline,"rn");
printf("%sn",sendline);
sendbytes=send(control_sockfd,sendline,strlen(sendline),0);
if(sendbytes