20 课程总结,单机模式下的文件上传与下载
2017-02-28 20:54
260 查看
1. 例子:单机模式下的文件上传送和下载
(1) 输入服务器的地址: 路径和目录名
(2) 列出服务器中有哪些文件: opendir readdir
(3) 输入从服务器下载的文件名 或 上传文件到服务器的文件名
(4) 文件下载 或 文件上传送
文件IO: open read write close
标准IO fopen fputs fgets fputc fgetc fread fwrite fclose
2. 代码
#include "stdio.h"
#include "sys/types.h"
#include "dirent.h"
#include "string.h"
#include "unistd.h"
#include "fcntl.h"
int main(int argc, char *argv[]){
DIR *dp;
int fd;
struct dirent *dir;
char server[128] = {0};
int src_fd,des_fd;
char file[128]={0};
char buf[128]={0};
int ret;
start:
printf("please input server PATH and Directory name\n");
scanf("%s",server);
//list server files
dp = opendir(server);
if(dp == NULL){
printf("open server %s error\n",server);
goto start;
}
printf("open server %s success\n",server);
//read server dir
while(1){
dir = readdir(dp);
if(dir == NULL){
break;
}else{
printf("inode=%ld name =%s\n",dir->d_ino,dir->d_name);
}
}
printf("please input download file\n");
scanf("%s",file);
//open server file
src_fd = open(strcat(strcat(server,"/"),file),O_RDONLY);
if(src_fd < 0){
printf("open download file :%s\n",file);
return -1;
}
printf("open download file %s success\n",file);
des_fd = open(file,O_CREAT | O_WRONLY,0777);
if(des_fd < 0){
printf("create file %s error\n",file);
return -2;
}
printf("create file %s success\n",file);
while(1){
ret = read(src_fd,buf,128);
if(ret < 128){
break;
}
write(des_fd,buf,ret);
}
write(des_fd,buf,ret);
close(des_fd);
close(src_fd);
closedir(dp);
return 0;
}
(1) 输入服务器的地址: 路径和目录名
(2) 列出服务器中有哪些文件: opendir readdir
(3) 输入从服务器下载的文件名 或 上传文件到服务器的文件名
(4) 文件下载 或 文件上传送
文件IO: open read write close
标准IO fopen fputs fgets fputc fgetc fread fwrite fclose
2. 代码
#include "stdio.h"
#include "sys/types.h"
#include "dirent.h"
#include "string.h"
#include "unistd.h"
#include "fcntl.h"
int main(int argc, char *argv[]){
DIR *dp;
int fd;
struct dirent *dir;
char server[128] = {0};
int src_fd,des_fd;
char file[128]={0};
char buf[128]={0};
int ret;
start:
printf("please input server PATH and Directory name\n");
scanf("%s",server);
//list server files
dp = opendir(server);
if(dp == NULL){
printf("open server %s error\n",server);
goto start;
}
printf("open server %s success\n",server);
//read server dir
while(1){
dir = readdir(dp);
if(dir == NULL){
break;
}else{
printf("inode=%ld name =%s\n",dir->d_ino,dir->d_name);
}
}
printf("please input download file\n");
scanf("%s",file);
//open server file
src_fd = open(strcat(strcat(server,"/"),file),O_RDONLY);
if(src_fd < 0){
printf("open download file :%s\n",file);
return -1;
}
printf("open download file %s success\n",file);
des_fd = open(file,O_CREAT | O_WRONLY,0777);
if(des_fd < 0){
printf("create file %s error\n",file);
return -2;
}
printf("create file %s success\n",file);
while(1){
ret = read(src_fd,buf,128);
if(ret < 128){
break;
}
write(des_fd,buf,ret);
}
write(des_fd,buf,ret);
close(des_fd);
close(src_fd);
closedir(dp);
return 0;
}
相关文章推荐
- java上传下载文件的总结
- 文件的上传与下载--->张国亮总结心得第一季
- (20)JavaEE文件上传与下载
- JavaWeb学习总结(五十)——文件上传和下载
- shell 模式下tftp下载上传文件的命令
- webwork上传下载文件的问题总结
- 文件上传下载总结
- JavaWeb学习总结(五十)——文件上传和下载
- JavaWeb学习总结(五十)——文件上传和下载
- 文件上传下载总结
- C#中对文件的上传下载操作总结(下载后点击删除按钮总是提示进程被占用)
- JSF 2.0(基于Primefaces 3.4.2)文件上传与下载的总结
- [SAP ABAP开发技术总结]以二进制、字符模式下载文件
- ASP.NET中文件上传下载方法总结
- 【转载】Asp.NET大文件上传组件开发总结_NET2.0源码下载。
- 文件的上传与下载--->张国亮总结心得第一季
- 文件的上传与下载--->张国亮总结心得第二季
- cURL 学习笔记与总结(4)使用 cURL 从 ftp 上下载文件与上传文件到 ftp
- ASP.NET知识总结(5.文件上传 6.文件下载)
- [SAP ABAP开发技术总结]客户端文本文件、Excel文件上传下载