怎么判断文件夹下子文件夹的文件名是否相同?

问题描述

求大牛帮解决下这个疑难,谢谢。怎么判断文件夹下子文件夹的文件名是否相同?如果有相同的就删除,只保留一个修改时间为最后的文件。图示:我最终结果就是想把A1子文件夹的a.txtb.txt删除掉。条件是A2子文件夹的修改日期大于A1子文件夹的文件下面是我自己写的一段查找文件的代码,想把判断条件写进foreach(FileInfofinDir.GetFiles("*.*",SearchOption.TopDirectoryOnly)){if...}publicvoidFindFile(stringsSourcePath){//在指定目录及子目录下查找文件,在list中列出子目录及文件DirectoryInfoDir=newDirectoryInfo(sSourcePath);DirectoryInfo[]DirSub=Dir.GetDirectories();//stringStrerr=".err";if(DirSub.Length<=0){foreach(FileInfofinDir.GetFiles("*.*",SearchOption.TopDirectoryOnly))//查找文件{//if(f.ToString().Contains(Strerr))//{//f.Delete();//}this.listBox1.Items.Add(f.ToString());}}intt=1;foreach(DirectoryInfodinDirSub)//查找子目录{FindFile(Dir+@""+d.ToString());if(t==1){foreach(FileInfofinDir.GetFiles("*.*",SearchOption.TopDirectoryOnly))//查找文件{//this.listBox1.Items.Add(Dir+@""+f.ToString());this.listBox1.Items.Add(f.ToString());}t=t+1;}}}

解决方案

解决方案二:
通过Directory.GetFiles获取两个文件夹的FileName数组string[]然后通过并集获取同时再两个文件夹里都有的同名文件arr1.Intersect(arr2)最后循环结果集合,比较同名文件在两个文件夹下的File.GetLastWriteTime
解决方案三:
引用1楼starfd的回复:

通过Directory.GetFiles获取两个文件夹的FileName数组string[]然后通过并集获取同时再两个文件夹里都有的同名文件arr1.Intersect(arr2)最后循环结果集合,比较同名文件在两个文件夹下的File.GetLastWriteTime

这位兄弟能写下代码吗?我自己初学的,不是很懂。数组那章还没看到
解决方案四:
staticvoidFileCompare(stringdirectory1,stringdirecotry2){vararr1=Directory.GetFiles(directory1).Select(x=>Path.GetFileName(x));vararr2=Directory.GetFiles(direcotry2).Select(x=>Path.GetFileName(x));foreach(varstrinarr1.Intersect(arr2)){DateTimedt1=File.GetLastWriteTime(Path.Combine(directory1,str));DateTimedt2=File.GetLastWriteTime(Path.Combine(direcotry2,str));//比较两个的时间}}

解决方案五:
引用3楼starfd的回复:

staticvoidFileCompare(stringdirectory1,stringdirecotry2){vararr1=Directory.GetFiles(directory1).Select(x=>Path.GetFileName(x));vararr2=Directory.GetFiles(direcotry2).Select(x=>Path.GetFileName(x));foreach(varstrinarr1.Intersect(arr2)){DateTimedt1=File.GetLastWriteTime(Path.Combine(directory1,str));DateTimedt2=File.GetLastWriteTime(Path.Combine(direcotry2,str));//比较两个的时间}}


解决方案六:
基本上就是楼上的做法
解决方案七:
引用3楼starfd的回复:

staticvoidFileCompare(stringdirectory1,stringdirecotry2){vararr1=Directory.GetFiles(directory1).Select(x=>Path.GetFileName(x));vararr2=Directory.GetFiles(direcotry2).Select(x=>Path.GetFileName(x));foreach(varstrinarr1.Intersect(arr2)){DateTimedt1=File.GetLastWriteTime(Path.Combine(directory1,str));DateTimedt2=File.GetLastWriteTime(Path.Combine(direcotry2,str));//比较两个的时间}}

晚点尝试下,谢谢你。

时间: 2024-09-12 06:18:42

怎么判断文件夹下子文件夹的文件名是否相同?的相关文章

dos命令如何选择某个文件夹下所有的.cpp文件和.h文件(包括文件夹下子文件夹中的文件)

问题描述 dos命令如何选择某个文件夹下所有的.cpp文件和.h文件(包括文件夹下子文件夹中的文件) dos命令如何选择某个文件夹下所有的.cpp文件和.h文件(包括文件夹下子文件夹中的文件).最好能过用一句代码表示,谢谢!!! 解决方案 这个要一个个选吧!记得好像没有全选 解决方案二: linux下重命名文件或文件夹命令遍历文件, 包括子文件夹----------------------

将E盘下的180文件夹下的所有最深层文件放到E盘下的car文件加下,并且要求重命名文件,并且判断最里层文件同目录下是否有多个文件,并且判断文件夹是否为空

package com.cheyoushuor.enamefile; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public

Linux proc目录下子文件或子文件夹的作用_Linux

一.Linux /proc目录 简介Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为访问系统内核数据的操作提供接口.用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数.由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的.下面列出的这些文件或子文件夹,并不是

PHP遍历文件夹与文件类及处理类用法实例

  本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值.分享给大家供大家参考.具体方法如下: FindFile.class.php类文件用于遍历目录文件,具体代码如下: <?php /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 */ class FindFile{ public $files = array(); // 存储遍历的文件 protected $maxdepth; // 搜寻深度,0表示

PHP遍历文件夹及文件类及处理类

FindFile.class.php 用于遍历目录文件 <?php /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 */ class FindFile{ public $files = array(); // 存储遍历的文件 protected $maxdepth; // 搜寻深度,0表示没有限制 /* 遍历文件及文件夹 * @param String $spath 文件夹路径 * @param int $maxdep

Java删除文件夹和文件

1 验证传入路径是否为正确的路径名private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";  // 正则表达式,通过sPath.matches(matches)判断   2 通用删除方法,直接调用此方法,即可实现删除文件夹或文件,包括文件夹下的所有文件public boolean DeleteFolder(String sPath) {      flag = false;      file = ne

PHP遍历文件夹与文件类及处理类用法实例_php技巧

本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值.分享给大家供大家参考.具体方法如下: FindFile.class.php类文件用于遍历目录文件,具体代码如下: <?php /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 */ class FindFile{ public $files = array(); // 存储遍历的文件 protected $maxdepth; // 搜寻深度,0表示没有

Python文件夹与文件的操作实现代码_python

有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模块, 导入的方法是: import os 一.取得当前目录 s = os.getcwd() # s 中保存的是当前目录(即文件夹) 比如运行abc.py,那么输入该命令就会返回abc所在的文件夹位置. 举个简单例子,我们将abc.py放入A文件夹.并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹.且文件夹的名字根据时间自动生成. import os import time folder =

Java中实现复制文件到文件,复制文件到文件夹,复制文件夹到文件,删除文件,删除文件夹,移动文件,移动文件夹的工具类

package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JOptionPane; /**  * CFMS :Computer f