zoukankan      html  css  js  c++  java
  • 文件夹下所有文件及子文件夹将文件名小写

    最近领导要求将服务器上的文件以及以下所有子文件夹下所有东西都小写。网上狂搜各种方法,未果,索性自己编写一个Java解决。

    import java.io.File;
    
    public class AllRename {
        public static void main(String args[]) {
            String RenamePath=args[0];
            File dir = new File(RenamePath);
            RenameAllFiles(dir);
        }
    
        private static void RenameAllFiles(File dir) {
            // TODO Auto-generated method stub
            File[] fs = dir.listFiles();
            for (int i = 0; i < fs.length; i++) {
                File s=new File(dir+"\\"+fs[i].getName().toLowerCase());
                fs[i].renameTo(s);
                if (fs[i].isDirectory()) {
                    try {
                        RenameAllFiles(fs[i]);
                    } catch (Exception e) {
                        System.out.println("System Error!"+fs[i]);
                    }
                }
            }
        }
    }

    后来同事又给了我新的2个方法,分别是perl和shell;

    #!/usr/bin/perl -w
    
    sub f {
      ($path) = @_;
      foreach my $file (glob "$path/*"){
        my $newfile = lc($file);
        if(($file eq ".") || ($file eq "..")) {
          return 1;
        }
        if(-e $file) {
          rename $file, $newfile;
          &f($newfile);
        }
        else {
          rename $file, $newfile;
        }
      }
    }
    f('.');

    shell

    find . | tac | gawk '{x=tolower($0);}x!=$0{print "mv","\047"$0"\047","\047"x"\047"}'|sh 

    代码基本都解决特殊字符的问题,比如括号(我在环境中就问题这样的问题,真不知道哪个2B干的好事...哎)

  • 相关阅读:
    fork()和vfork()的区别(转载)
    Linux中fork()函数详解(转载)
    ERROR:Simulator861-Failed to link the design解决办法
    ISE 14.7安装教程最新版(Win10安装)
    实验2用户及文件权限管理
    检验
    实验1基本概念及操作
    日常学习笔记(2)
    日常笔记1
    拷贝初始化的几种情况
  • 原文地址:https://www.cnblogs.com/leonxiaosi/p/2892746.html
Copyright © 2011-2022 走看看