[转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录
原文:http://blog.csdn.net/vchao13/article/details/6200255
1、获取指定目录下所有文件信息
- /// <summary>
- /// 返回指定目录下所有文件信息
- /// </summary>
- /// <param name="strDirectory">目录字符串</param>
- /// <returns></returns>
- public List<FileInfo> GetAllFilesInDirectory(string strDirectory)
- {
- List<FileInfo> listFiles = new List<FileInfo>(); //保存所有的文件信息
- DirectoryInfo directory = new DirectoryInfo(strDirectory);
- DirectoryInfo[] directoryArray = directory.GetDirectories();
- FileInfo[] fileInfoArray = directory.GetFiles();
- if (fileInfoArray.Length > 0) listFiles.AddRange(fileInfoArray);
- foreach (DirectoryInfo _directoryInfo in directoryArray)
- {
- DirectoryInfo directoryA = new DirectoryInfo(_directoryInfo.FullName);
- DirectoryInfo[] directoryArrayA = directoryA.GetDirectories();
- FileInfo[] fileInfoArrayA = directoryA.GetFiles();
- if (fileInfoArrayA.Length > 0) listFiles.AddRange(fileInfoArrayA);
- GetAllFilesInDirectory(_directoryInfo.FullName);//递归遍历
- }
- return listFiles;
- }
2、移动此目录到指定目录
- /// <summary>
- /// 从一个目录将其内容移动到另一目录
- /// </summary>
- /// <param name="directorySource">源目录</param>
- /// <param name="directoryTarget">目的目录</param>
- private void MoveFolderTo(string directorySource, string directoryTarget)
- {
- //检查是否存在目的目录
- if (!Directory.Exists(directoryTarget))
- {
- Directory.CreateDirectory(directoryTarget);
- }
- //先来移动文件
- DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
- FileInfo[] files = directoryInfo.GetFiles();
- //移动所有文件
- foreach (FileInfo file in files)
- {
- //如果自身文件在运行,不能直接覆盖,需要重命名之后再移动
- if (File.Exists(Path.Combine(directoryTarget, file.Name)))
- {
- if (File.Exists(Path.Combine(directoryTarget, file.Name + ".bak")))
- {
- File.Delete(Path.Combine(directoryTarget, file.Name + ".bak"));
- }
- File.Move(Path.Combine(directoryTarget, file.Name), Path.Combine(directoryTarget, file.Name + ".bak"));
- }
- file.MoveTo(Path.Combine(directoryTarget, file.Name));
- }
- //最后移动目录
- DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
- foreach (DirectoryInfo dir in directoryInfoArray)
- {
- MoveFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
- }
- }
3、拷贝此目录到指定目录
- /// <summary>
- /// 从一个目录将其内容复制到另一目录
- /// </summary>
- /// <param name="directorySource">源目录</param>
- /// <param name="directoryTarget">目的目录</param>
- static void CopyFolderTo(string directorySource, string directoryTarget)
- {
- //检查是否存在目的目录
- if (!Directory.Exists(directoryTarget))
- {
- Directory.CreateDirectory(directoryTarget);
- }
- //先来复制文件
- DirectoryInfo directoryInfo = new DirectoryInfo(directorySource);
- FileInfo[] files = directoryInfo.GetFiles();
- //复制所有文件
- foreach (FileInfo file in files)
- {
- file.CopyTo (Path.Combine(directoryTarget, file.Name));
- }
- //最后复制目录
- DirectoryInfo[] directoryInfoArray = directoryInfo.GetDirectories();
- foreach (DirectoryInfo dir in directoryInfoArray)
- {
- CopyFolderTo(Path.Combine(directorySource, dir.Name), Path.Combine(directoryTarget, dir.Name));
- }
- }
[转]C# 获取指定目录下所有文件信息、移动目录、拷贝目录的更多相关文章
- C# 获取指定目录下所有文件信息
/// <summary> /// 返回指定目录下所有文件信息 /// </summary> /// <param name="strDirectory&quo ...
- Python获取指定路径下所有文件的绝对路径
需求 给出制定目录(路径),获取该目录下所有文件的绝对路径: 实现 方式一: import os def get_file_path_by_name(file_dir): ''' 获取指定路径下所有文 ...
- C# 获取指定目录下所有文件信息、移动目录、拷贝目录
/// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...
- java中实现File文件的重命名(renameTo)、将文件移动到其他目录下、文件的复制(copy)、目录和文件的组合(更加灵活方便)
欢迎加入刚建立的社区:http://t.csdn.cn/Q52km 加入社区的好处: 1.专栏更加明确.便于学习 2.覆盖的知识点更多.便于发散学习 3.大家共同学习进步 3.不定时的发现金红包(不多 ...
- Azure Powershell获取指定订阅下的虚拟机信息(ARM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureRmAccount -EnvironmentName AzureCh ...
- Azure Powershell获取指定订阅下的虚拟机信息(ASM)
为方便Azure用户导出已创建虚拟机的相关信息,特编写如下脚本: 详情脚本: # 登陆Azure Account Add-AzureAccount -Environment AzureChinaClo ...
- location 将跟目录下某个文件夹指向2级目录
例如: /caffespressos/指向/web01/caffe/ [root@web01 default]# tree web01/ web01/ └── caffe └── index.html ...
- (实用篇)PHP不用递归遍历目录下所有文件的代码
<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ fu ...
- PHP 获取指定目录下所有文件(包含子目录)
PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...
随机推荐
- Docker构建nginx的nginx-rtmp-module视频服务器镜像
文章地址:https://www.cnblogs.com/linyilong3/p/5862595.html GitHub nginx-rtmp-module 及配置 Dockerfile构建配置: ...
- SQL 2005示例库(转载)
sql2005数据库实例 从网上找还得麻烦,转了过来,点击就可以下载! 在学习SQL2005中离开不了SQL2005示例数据库,AdventureWorks数据库下载安装,,northwind数据库下 ...
- self.navigationItem.titleView 不居中显示的问题
自定义一个AUIView, AUIView * v=[AUIView new]; self.navigationItem.titleView = v; 在AUIView类内重写 setFrame - ...
- Application Architecture Determines Application Performance
 Application Architecture Determines Application Performance Randy Stafford AppliCATion ARCHiTECTuR ...
- python之读取Excel 文件
# -*- coding: utf-8 -*- """ Created on Thu May 24 13:53:10 2018 @author: Frank " ...
- iOS9新特性
本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级 ...
- JAVA中使用P和Q分量计算N和D进行RSA运算
最近在使用Java中需要使用PQ形式的私钥进行RSA加解密运算,本来以为Java中应该很多类似的例子,发现所有的例子都是从ND形式的私钥,竟然没有人用分量P和Q计算N和D进行运算.对Java使用RSA ...
- emblog后台拿shell
emlog版本:5.3.1 先本地弄好shell 新建一个文件夹,里面放shell,shell名称和文件名要一致.压缩为zip 然后在安装插件处上传. 成功后的路径content/plugins/te ...
- go context包的WithTimeout和WithCancel的使用
1.WaitGroup 它是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成. func main() { var wg sync.WaitGroup wg.Add(2) go f ...
- scala读写文件
def main(args: Array[String]): Unit = { //1 read for( i<- Source.fromFile("test.dat").g ...