110,539
社区成员
发帖
与我相关
我的任务
分享
DirectoryInfo di = new DirectoryInfo(@"c:\");
var lessGroup = from fi in di.GetFiles("*.jpg") group fi by fi.CreationTime into g where g.Count() < 5 select g;
//lessGroup就是不足5个的,考虑多组不足5个的情况
foreach (var g in lessGroup)
{
foreach (var item in g)
{
//item//就是FileInfo,你可以用这个来创建副本了
}
}
public class FileInfoCount
{
public Int32 Count;
public FileInfo FileInfo;
public FileInfoCount(FileInfo fileInfo) { this.FileInfo = fileInfo; }
}
System.Collections.Generic.Dictionary<Int32, FileInfoCount> secondCountDic = new System.Collections.Generic.Dictionary<Int32, FileInfoCount>();
public void Main()
{
System.Collections.Generic.IEnumerable<FileInfo> fileInfos = GetAllFileInfos("D:\\Test");
DateTime baseTime = new DateTime(2000, 1, 1);
foreach (FileInfo fileInfo in fileInfos)
{
Int32 seconds = Convert.ToInt32((fileInfo.CreationTime - baseTime).TotalSeconds);
AddTime(seconds, fileInfo);
}
foreach (System.Collections.Generic.KeyValuePair<Int32, FileInfoCount> key in secondCountDic)
{
if (key.Value.Count >= 5) continue;
key.Value.FileInfo.CopyTo("");
}
}
private System.Collections.Generic.IEnumerable<FileInfo> GetAllFileInfos(string p)
{
throw new Exception("The method or operation is not implemented.");
}
private void AddTime(Int32 seconds, FileInfo fileInfo)
{
if (secondCountDic.ContainsKey(seconds)) secondCountDic.Add(seconds, new FileInfoCount(fileInfo));
else secondCountDic[seconds].Count++;
}
public class FileInfoCount
{
public Int32 Count;
public FileFinfo FileInfo;
public FileInfoCount(FileFinfo fileInfo){this.FileInfo = fileInfo;}
}
Dictionary<Int32,FileInfoCount> secondCountDic = new Dictionary<Int32,FileInfoCount>();
public void Main()
{
IEnumerable<FileInfo> fileInfos= GetAllFileInfos("D:\Test");
DateTime baseTime = new DateTime(2000,1,1);
foreach(FileInfo fileInfo in fileInfos)
{
Int32 seconds = Convert.ToInt32((createdTime - fileInfo.CreationTime).TotalSeconds);
AddTime(seconds,fileInfo);
}
foreach(KeyValuePair<Int32,FileInfoCount> key in secondCountDic)
{
if(key.Value.Count>=5) continue;
key.Value.FileInfo.CopyTo(文件名);
}
}
private void AddTime(Int32 seconds,FileInfo fileInfo)
{
if(secondCountDic .ContainsKey(seconds)) secondCountDic .Add(secons,new FileInfoCount(fileInfo));
else secondCountDic[seconds].Count++;
}