vc中如何把一个目录包括目录下所有文件,以及子目录复制到指定目录中

作者&投稿:素胀 (若有异议请与网页底部的电邮联系)
怎么批量复制文件夹里所有子目录,包括子目录中指定后缀的文件到新的文件夹保持原有的结构目录,且...~

你也没说对语言的要求?命令是什么命令?bash?dos?
我做过一个类似的,python 的,感觉和你这个有点像,你可以看看。
指定后缀名说白了不过是一个正则而已:/.*[.]txt$/ 就指定了 txt 文件的后缀了。
ps:这个正则是 js 的正则。

代码 gist,自行翻墙
# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""import osimport randomimport shutilos.mkdir('.%s%s' % (os.sep, 'top'))os.chdir('.%s%s' % (os.sep, 'top'))print('你现在处于:%s' % os.path.abspath(os.curdir))# 创建 100 个随机文件夹,并放入 a b c d efor i in range(0, 100): randDirName = str(random.randint(0, 99999)) os.mkdir(r'%s' % (randDirName)) for fileName in ['a', 'b', 'c', 'd', 'e']: fd = open(r'%s%s%s' % (randDirName, os.sep, fileName), 'w+') fd.close()# 再额外建立 5 个新文件夹 A B C D Efor fileName in ['a', 'b', 'c', 'd', 'e']: os.mkdir(fileName) # 现在根据名字提取那 100 随机命名文件夹中指定姓名的文件_100RandDirName = []for dirName in os.listdir(): if dirName not in ['A', 'B', 'C', 'D', 'E']: _100RandDirName.append(dirName)print(len(_100RandDirName))# os.sep 跨平台用# 将对应名字的文件存入对应的名字的文件夹中for someOneDir in _100RandDirName: listFileNames = os.listdir(someOneDir) for fileName in ['a', 'b', 'c', 'd', 'e']: if fileName in listFileNames: src = '%s%s%s' % (someOneDir, os.sep, fileName) target = '%s' % (fileName.upper()) shutil.copy(src, target) oldName = '%s%s%s' % (target, os.sep, fileName) newName = '%s%s%s_%s' % (target, os.sep, someOneDir, fileName) os.rename(oldName, newName)

@echo offfor /r %%i in (*) do (move "%%~i" "%~dp0")for /d %%i in (*) do (rd /q /s "%%~i")del %0将批处理放在根目录或者根文件夹下运行,可以先备份文件实验下。

复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]

source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属性集的文件,
但不改变属性。
/M 只复制有存档属性集的文件,
并关闭存档属性。
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。每一个字符串
必须在文件的单独行中。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。
与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,
则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到
不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 覆盖只读文件。
/T 创建目录结构,但不复制文件。
不包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属性。一般的 Xcopy 会重置只读属性。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 复制文件审核设置(隐含 /O)。
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。

命令行开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 改写。

调用系统命令行,System("xcopy sourceDir destDir");具体你自己测试一下吧~

为什么不用遍历呢,一个FindFirstFile,一个FindNextFile递归就完了。看起来xcopy的参数也不少啊,前几天回答过一个人。

copy sorceDir\*.* destDir /s

还是自己写吧
我刚写了个 你不会就给你讲讲呵呵
不太难写 来个递归搞定


这个什么意思啊?C分区根目录下新建一个“记事本”文件
就是在你的C盘中建立一个记事本文件。你没有说明白。

如何用javac命令编译一个目录以及子目录下所有的java文件呢?
一个 ant 样例:java -classpath ant.jar;ant-launcher.jar org.apache.tools.ant.launch.Launcher -v build.xml<!-- file name: build.xml --><project default="compile"> <target name="compile"> <mkdir dir="bin"\/> <javac srcdir="src" destdir="bin"\/> <\/target>...

如何在BCB6中实现选择一个文件目录?
AnsiString Dir = "C:";SelectDirectory(AnsiString("选择文件夹"), L"", Dir);if(Dir != "")ShowMessage(Dir);你看看行不行,忘了是不是要包含什么头

c语言程序,把一个txt文件中的内容复制到另一个txt文件中!
你输入的时候是不是两个文件名之间用空格符做分隔符啊,gets函数是以回车符为结束符的,输入格式应该为:in.txt out.txt 这样子,不能这样子:in.txt out.txt

在C:分区根目录下有时会出现一个mylog.txt,不知道是什么程序产生的_百 ...
是某款软件的记录信息。相当于日志。用来给软件自己看的。(也有可能是记录下来,等软件出问题的时候,给软件源代码开发者看的)根据内容分析,你可能用某款软件执行删除操作61次,建立过4个项目(卡号?),最近一次是打开了第一个项目(第一个卡号?),截止到这个Log日志文件生成的时候,没有执行更多...

c语言如何获取用户通过键盘输入的文件目录中的文件名和文件路径,ballbal...
int main(){ string s = "c:\\\\abc\\\\def\\\\text.txt";int xie_index = s.find_last_of('\\\\');\/\/ 路径中最后一个\\的位置 string file_dirname = s.substr(0, xie_index + 1);string file_basename = s.substr(xie_index + 1, s.size());cout << file_dirname << endl << ...

objective-c怎样创建txt文档?使用什么类和方法通过一个目录创建...
在“运行”栏中执行“cmd”命令,打开命令提示符窗口,在其中输入“c:”命令(不含引号,下同),接着在“c:”后输入“mkdir s..”,按回车键。现在,打开资源管理器,可看到C盘下建立了一个名为“s.”的文件夹,不过这个文件夹既不能打开也不能删除。不能打开是因它的实际路径是“c:s..”...

用C-SHELL写一个程序,比较两个目录的不同?
在linux系统下我想到三种:第一种用目录项函数与stat函数;第二种是通过命令把目录导入到不同的文本文件里,然后用C操作或者系统的文件操作函数解决;第三种就是用脚本语言,这个有点难度,建议楼主考虑前两种。

c\/c++语言怎么写个文件移动到另外一个目录下的程序
你用的编译器是什么?是用的vs2012吗?如果是 在MFC下面可以这样 MoveFile(LPCTSTR lpExistingFileName, \/\/ file name LPCTSTR lpNewFileName \/\/ new file name); BOOL MoveMyFile(){ \/\/获取当前文件目录 CString strFileName = "YourFilePath\/YourFileName"; CString strNewFi...

在Linux虚拟文件系统里如何代码实现(C语言):在目录中删除文件
告诉你一个最简单的办法,在windows下安装一个winscp软件,然后运行,打开一个窗口,如果Linux的ip地址,用户名,密码,点击连接,如果连接成功,会出现一个类似windows资源管理器的窗口,分左右两屏,左边是windows目录,右边是Linux目录,很简单,鼠标拖拽,很方便的 ...

岳麓区13566159832: vc中如何把一个目录包括目录下所有文件,以及子目录复制到指定目录中 -
其法达利: 调用系统命令行,System("xcopy sourceDir destDir");具体你自己测试一下吧~

岳麓区13566159832: VC 如何读取一个目录下的所有文本,并且合并到指定的文本里 -
其法达利: 思路:首先新建打开一个新的txt文本,用于合并其他所有文本.然后历遍指定的目录,每次找到txt文本,就则行一个读写的函数,该函数用于把找到的txt文本全部读出来,然后以写入文件末尾的方式写到新的文本里面.关闭这次的txt文件,继续...

岳麓区13566159832: 如何用VC实现类似WINRAR的功能,把一个目录下所有文件打包为一个文件.用自己的程序可以打开,察看文件.
其法达利:这个需要自己设计一个算法和数据结构.其实很简单就是一个结构体

岳麓区13566159832: 如何使用批处理或C,VC等语言实现将一个目录下的所有文件夹里的文件都剪切到该目录?
其法达利: 那一个批处理,内容如下:mypath后面指定要剪的目录即可. 其它关于for的命令可以dos下运行help dos查看. set mypath="f:\test" for /r "%mypath%" %%a in (*) do if exist "%%a" move "%%a" "%mypath%\"

岳麓区13566159832: vb2013 如何获取指定目录下及子目录下所有文件? -
其法达利: 这个分两个步骤.第一步是利用 System.IO.DirectoryInfo 类的 GetDirectories() 方法,遍历指定目录下的所有子目录.第二步是利用 System.IO.DirectoryInfo 类的 GetFiles() 方法,遍历这些子目录(包括根目录)下的所有文件.原理就是这样,代码可参考:http://blog.csdn.net/aspnet2002web/article/details/6087476 这篇博文.

岳麓区13566159832: C语言如何遍历目录 (C++也可以) findfirst findnext怎么用? -
其法达利: WIN32_FIND_DATA fd; HANDLE hdFind; hdFind = FindFirstFile(strDirPath,&fd);//strDirPath为目录路径 if(hdFind != INVALID_HANDLE_VALUE) { do { //做你需要的操作. }while(FindNextFile(hdFind,&fd)); }

岳麓区13566159832: 请问,C++/VC怎么清理(删除)一个目录下所有的空文件夹? -
其法达利: 参考代码,这里的函数可将一个目录及其子目录中的所有空文件夹删除,程序已测试过,建议使用前自己认真测试一下. 注意:代码造成的误删操作与本人无关. ///////////////////////////////////////////////////// 使用方法: char dir[] = "d:\\test\\"; ...

岳麓区13566159832: 用vc如何在某个指定的文件夹目录下写入多个txt文件,如1.txt 2.txt 3.txt等,就是要保证文件名不会重复 -
其法达利: 不知你想创建新文件,还是新文件夹 FILE *out; char newname[256];//newname即为你想创建的文件名 if((out = fopen(newname, "wb+")) != NULL) { }//创建文件夹 char newfoldername[256]; SECURITY_ATTRIBUTES attribute; attribute.nLength ...

岳麓区13566159832: vb 如何让List1中显示一个目录下的所有文件(包括子文件夹里的文件)? -
其法达利: LIST1显示D:\123\下面的所有文件!Private Sub Command1_Click() Dim Filename As String, mypath As String, k As Integer mypath = "D:\123\" 'Range("A1:A10") = "" List1.Text = "" Filename = Dir(mypath & "*.*") 'DIR可以显示相应...

岳麓区13566159832: 怎么在vc++目录包含文件中添加目录 -
其法达利: 增加一个目录:C:\Boost\include\boost-1_43\;到默认头Include 路径,则可以修改文件如下:$(ExecutablePath) C:\Boost\include\boost-1_43\;$(IncludePath) $(ReferencePath) $(LibraryPath) $(SourcePath) $(ExcludePath) 转载,仅供参考.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网