读书人

关于C#文件操作的有关问题请高手指

发布时间: 2012-04-15 18:39:21 作者: rapoo

求助,关于C#文件操作的问题,请高手指教。。。
我在一个文件夹下有若干文件,文件名的格式为:8888_序号A.jpg 8888_序号B.jpg 8888_序号C.jpg
A、B、C为一组

具体如下:
--------------------------------------------------
8888_0001A.jpg
8888_0001B.jpg
8888_0001C.jpg
8888_0002A.jpg
8888_0002B.jpg
8888_0002C.jpg
8888_0003A.jpg
8888_0003B.jpg
8888_0004A.jpg
8888_0005A.jpg
8888_0005C.jpg

-------------------------------------------------
找出以上文件中序号相同,同时A B C 其全的文件,

例如:0002序号中A B C 三张图片是其全的,列出文件名;
A B C 有一张或两张不存在的将其删除处理

经处理后,得到序号为0001,0002两个序号的图片为A B C 两组图片。。。
最好写成一个C# 函数,请高手指教,不胜感激。。。


[解决办法]

C# code
//using System.IO;        private void ListFolderFiles(DirectoryInfo dirinfo)        {            FileSystemInfo[] files = dirinfo.GetFileSystemInfos ("*.jpg ");            Dictionary<string, int> dic = new Dictionary<string, int>();            for (int i = 0; i < files.Length; i++)               {                FileInfo file = files[i] as FileInfo;                string key = file.Name.Substring(0, file.Name.LastIndexOf('.')-1);                                if (!dic.ContainsKey(key))                {                    dic.Add(key, 1);                }                else                 {                    dic[key] += 1;                }            }            for (int i = files.Length - 1; i >= 0; i--)            {                FileInfo file = files[i] as FileInfo;                if (dic[file.Name.Substring(0, file.Name.LastIndexOf('.') - 1)] < 3)                {                    files[i].Delete();                }                else                 {                    MessageBox.Show(file.Name);                }            }        } //调用(假如操作C:\pic目录下的jpg文件)              DirectoryInfo c = new DirectoryInfo("c:\\pic ");             ListFolderFiles(c);
[解决办法]
如果文件不多的话,将文件名读到容器(例如List)中,想怎么折腾怎么折腾。
[解决办法]
这个应该是考C#语法了。。。拆分文件名,呵呵
[解决办法]
一楼的可以。。。
[解决办法]
用一楼的方法就可以实现了
[解决办法]
先按一楼的删除不合格的,然后把“MessageBox.Show(file.Name)”这句换成,将文件名放到arraylist中的语句,然后给他排序,然后用嵌套循环输出。
[解决办法]
1L很厉害啊.mark下

读书人网 >C#

热点推荐