ITPub博客

首页 > Linux操作系统 > Linux操作系统 > windows下文件存放优化

windows下文件存放优化

原创 Linux操作系统 作者:wangzh3 时间:2006-04-27 20:59:48 0 删除 编辑

在windows下,一个路径下面的文件或者文件夹个数应该不宜超过1000个,太多的话对系统性能有影响。

在彩铃网关中,铃音文件的存放是根据铃音文件的所属的类别根据一个计算公式计算出来的,这就意味着一个路径下面可能会有非常多的文件,尽管程序访问的时候是通过ftp来获取铃音文件的,但是仍然有问题,就是在ftp之前要去查询铃音文件所属的分类,然后根据公式计算ftp上的存放路径,这样子就对数据库的压力较大,所以从各方面性能考虑,改成根据铃音文件名进行分路径存放,这样子相对简单,所以写如下perl程序进行转换。

[@more@]

#!C:/Perl/bin/perl.exe -w
# name:adjust.pl
# func:将0~23路径下的铃音调整为根据12位铃音id 4-3-3-2路径下存放。
# author:wangzhihong.china@gmail.com
# 补充说明:放在铃音ftp服务器根路径下,执行,最后生成新的路径和文件,原来的0~23路径可以删除或者备份,
# 做的时候需要考虑空间是否够用,因为这样子是double了铃音文件,所以空间占用是原来的两倍。
use strict;
use warnings;
use File::Path;
use File::Basename;
use File::Spec::Win32;
use File::Find;
use File::Copy;
use Cwd;

my $target=getcwd;


sub wanted{
if (-f $File::Find::name){
if ($File::Find::name=~/wav/){

my $FirstDir=$target."/".substr($_,0,4);
my $SecondDir=$FirstDir."/".substr($_,4,3);
my $ThirdDir=$SecondDir."/".substr($_,7,3);
my $FourthDir=$ThirdDir."/".substr($_,10,2);


if(! -e $FirstDir){
mkdir $FirstDir||die("error1");;
}

if (! -e $SecondDir){
mkdir $SecondDir||die("error2");;
}

if (! -e $ThirdDir){
mkdir $ThirdDir||die("error3");;
}

if (! -e $FourthDir){
mkdir $FourthDir||die("error4");;
}

my $filename=$_;

copy($File::Find::name,$FourthDir."/".$filename);
}
}
}

my @dirs=(0..23);
for my $dir(@dirs){
if (-e "$target/$dir"){
find(&wanted,"$target/$dir");
}
else{
print "$target/$dir does not existn";
}
}

print "it is ok now.n";

exit;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/47869/viewspace-830958/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 凡事要用心
请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10831563