想求一个 c++ 程序,希望能为尽量有详细的注释。
输入一个文件夹路径,读取文件夹里的所有文本文件,并且输出每个文件内容,然后把所有的文件转移到另一个文件夹下。就是最后读取文件夹下为空,转到的的另一个文件夹里包含了所有文本文件。
谢谢~
8 个解决方案
#1
其实就是遍历把文件读出来
再把文件夹名字改了,就相当于移到另一个文件夹了。
再把文件夹名字改了,就相当于移到另一个文件夹了。
#2
需要时保留原来的文件夹。
有没有代码呢? 我是刚学c++,还从来没写过读取文件夹的程序。
谢谢
有没有代码呢? 我是刚学c++,还从来没写过读取文件夹的程序。
谢谢
#3
P.S.标准C++本身不能创建文件夹,但不同编译器本身对这个功能都做了扩展,VC使用 _mkdir("mydir")函数来创建(#include <direct.h>),TC使用mkdir("mydir")来创建(#include <dir.h>)。
如果只是创建文件夹,还可以利用system("md mydir")函数来解决;
这个其实是一个老问题了:
http://topic.csdn.net/t/20061017/23/5089903.html
这里有解决方案,
方法就是依次打开文件、读取文件、输出文件、关闭文件
循环往复。
如果只是创建文件夹,还可以利用system("md mydir")函数来解决;
这个其实是一个老问题了:
http://topic.csdn.net/t/20061017/23/5089903.html
这里有解决方案,
方法就是依次打开文件、读取文件、输出文件、关闭文件
循环往复。
#4
对不起, 没太看懂。
读取文件名的方法是wfd.cFileName , 那读取文件内容的方法是什么呢?
可不可以用fstream 的getline那样一行一行读呢?
谢谢
读取文件名的方法是wfd.cFileName , 那读取文件内容的方法是什么呢?
可不可以用fstream 的getline那样一行一行读呢?
谢谢
#5
主要目的是把一个文件夹的内容考到令一个文件下的话,我知道一个函数很好用
SHFileOperation,举个列子:
SHFileOperation,举个列子:
#include<string.h>
#include<afx.h>
#include<shellapi.h>
void main()
{
char pFrom[256];
CString path = "D:\\VC" ; //源目录
CString newpath = "D:\\DrillData" ; //目标目录
memset(pFrom, 0x00, 256);
strcpy(pFrom, path); // 第一个文件
char pTo[256];
memset(pTo, 0x00, 256);
strcpy(pTo, newpath); // 第一个文件
SHFILEOPSTRUCT sfo;
sfo.hwnd = NULL;
sfo.wFunc = FO_MOVE;
sfo.pFrom = pFrom;
sfo.pTo = pTo;
sfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
SHFileOperation(&sfo);
}
#6
就是getling,
如果只是复制的话,用binary逐字节读取、输出。
#7
openfile
readfile
writefile
movefile
findfirstfile
findnextfile
fildclose
readfile
writefile
movefile
findfirstfile
findnextfile
fildclose
#8
复制文件
#include <stdio.h>
const char* src_name = "1.mp3";
const char* dest_name = "2.mp3";
int main()
{
FILE *src_fp;
if ((src_fp = fopen(src_name, "rb")) == NULL)
{
printf("fopen %s failed.\n", src_name);
return -1;
}
fseek(src_fp, 0L, SEEK_END);
int src_len = ftell(src_fp);
char *src_buf = new char[src_len];
fseek(src_fp, 0L, SEEK_SET);
fread(src_buf, src_len, 1, src_fp);
fclose(src_fp);
FILE *dest_fp;
if ((dest_fp = fopen(dest_name, "wb")) == NULL)
{
printf("fopen %s failed.\n", dest_name);
return -1;
}
fwrite(src_buf, src_len, 1, dest_fp);
fclose(dest_fp);
return 0;
}
#1
其实就是遍历把文件读出来
再把文件夹名字改了,就相当于移到另一个文件夹了。
再把文件夹名字改了,就相当于移到另一个文件夹了。
#2
需要时保留原来的文件夹。
有没有代码呢? 我是刚学c++,还从来没写过读取文件夹的程序。
谢谢
有没有代码呢? 我是刚学c++,还从来没写过读取文件夹的程序。
谢谢
#3
P.S.标准C++本身不能创建文件夹,但不同编译器本身对这个功能都做了扩展,VC使用 _mkdir("mydir")函数来创建(#include <direct.h>),TC使用mkdir("mydir")来创建(#include <dir.h>)。
如果只是创建文件夹,还可以利用system("md mydir")函数来解决;
这个其实是一个老问题了:
http://topic.csdn.net/t/20061017/23/5089903.html
这里有解决方案,
方法就是依次打开文件、读取文件、输出文件、关闭文件
循环往复。
如果只是创建文件夹,还可以利用system("md mydir")函数来解决;
这个其实是一个老问题了:
http://topic.csdn.net/t/20061017/23/5089903.html
这里有解决方案,
方法就是依次打开文件、读取文件、输出文件、关闭文件
循环往复。
#4
对不起, 没太看懂。
读取文件名的方法是wfd.cFileName , 那读取文件内容的方法是什么呢?
可不可以用fstream 的getline那样一行一行读呢?
谢谢
读取文件名的方法是wfd.cFileName , 那读取文件内容的方法是什么呢?
可不可以用fstream 的getline那样一行一行读呢?
谢谢
#5
主要目的是把一个文件夹的内容考到令一个文件下的话,我知道一个函数很好用
SHFileOperation,举个列子:
SHFileOperation,举个列子:
#include<string.h>
#include<afx.h>
#include<shellapi.h>
void main()
{
char pFrom[256];
CString path = "D:\\VC" ; //源目录
CString newpath = "D:\\DrillData" ; //目标目录
memset(pFrom, 0x00, 256);
strcpy(pFrom, path); // 第一个文件
char pTo[256];
memset(pTo, 0x00, 256);
strcpy(pTo, newpath); // 第一个文件
SHFILEOPSTRUCT sfo;
sfo.hwnd = NULL;
sfo.wFunc = FO_MOVE;
sfo.pFrom = pFrom;
sfo.pTo = pTo;
sfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
SHFileOperation(&sfo);
}
#6
就是getling,
如果只是复制的话,用binary逐字节读取、输出。
#7
openfile
readfile
writefile
movefile
findfirstfile
findnextfile
fildclose
readfile
writefile
movefile
findfirstfile
findnextfile
fildclose
#8
复制文件
#include <stdio.h>
const char* src_name = "1.mp3";
const char* dest_name = "2.mp3";
int main()
{
FILE *src_fp;
if ((src_fp = fopen(src_name, "rb")) == NULL)
{
printf("fopen %s failed.\n", src_name);
return -1;
}
fseek(src_fp, 0L, SEEK_END);
int src_len = ftell(src_fp);
char *src_buf = new char[src_len];
fseek(src_fp, 0L, SEEK_SET);
fread(src_buf, src_len, 1, src_fp);
fclose(src_fp);
FILE *dest_fp;
if ((dest_fp = fopen(dest_name, "wb")) == NULL)
{
printf("fopen %s failed.\n", dest_name);
return -1;
}
fwrite(src_buf, src_len, 1, dest_fp);
fclose(dest_fp);
return 0;
}