请教分拣歌词文件(处理中文排序)

tianyxy 2004-06-20 09:29:03
问题:小弟我今天在网上下载了一个winamp播放歌词的插件 然后又下载了一个压缩包 --歌词一万首。可是解压以后,由于放在一个文件夹下,文件虽然小,但是太多了(10300多个2k大小的文件)打开的时候非常非常的慢。我想根据字母顺序排序,在这个文件夹下建立A-Z的文件夹,把a打头的文件全部放到文件夹A下,依此类推,以提高访问速度。 现在问题就来了,诸如“无印良品....”“王菲....”,“王杰....”等文件归入W文件夹下,请高手不吝指教!
下面是我处理0-9,A-Z打头的文件的代码,希望各位多多指点。
using System;
using System.IO;

namespace 分拣歌词
{
class Class1
{
[STAThread]
static void Main(string[] args)
{

string dir="G:\\doc\\";
string desDir;
for(char c='A';c<='Z';c++)
{
desDir=dir+c;
if(!Directory.Exists(desDir))//如果文件夹不存在则建立之
{
Directory.CreateDirectory(desDir);
}
}
for(char c='0';c<='9';c++)
{
desDir=dir+c;
if(!Directory.Exists(desDir))//如果文件夹不存在则建立之
{
Directory.CreateDirectory(desDir);
}
}
string[] songs = Directory.GetFiles(dir);
foreach(string song in songs)
{
char c='A';
int begin=song.LastIndexOf("\\")+1;
int length=song.Length-begin;
string fileName=song.Substring(begin,length).Trim();//取得文件名 并去除前后空格
while(c<='Z')//移动开头'a'到'z'的文件
{
if(fileName[0]==c ¦ ¦fileName[0]==c+'a'-'A')
{
string des=dir+c+"\\"+fileName;
try
{
File.Move(song,des);
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("歌词{0}-->{1}",song,des);
}
c++;
}
c='0';
while(c<='9')//移动开头'0-9'的文件
{
if(fileName[0].Equals(c))
{
string des=dir+c+"\\"+fileName;
try
{
File.Move(song,des);
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("歌词{0}-->{1}",song,des);
}
c++;
}
}
Console.WriteLine("\n\n处理完毕0-9,a-z,A-Z,但是中文暂无处理!");
Console.Read();
}
}
}
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CMIC 2004-06-22
  • 打赏
  • 举报
回复
关于中文暂无处理:

用C#实现汉字转化为拼音
http://dev.csdn.net/develop/article/25/25536.shtm
tianyxy 2004-06-20
  • 打赏
  • 举报
回复
有没有高手指点一下呀?????????
tianyxy 2004-06-20
  • 打赏
  • 举报
回复
没有人来看一看吗?

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧