装载cygwin可以打成tar 包。然后如果文件有问题
Java用
iconv -f GBK -t utf-8 2010-10-30.txt –o 2010-10-30.txt
c用
iconv -f GBK -t utf-8 2010-10-30.txt > 2010-10-30.txt
如果文件有多个问题 可以用递归实现
具体如下:
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;
public class ChangeFile4ZH {
private static int total=0;
public static void main(String args[]){
System.out.println("请输入聊天根文件夹:");
Scanner sc = new Scanner(System.in);
String filePath = sc.nextLine();
if(filePath!=null && filePath.length()>0){
changeFileName(filePath);
}
}
public static void changeFileName(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//重命名文件
renameFile( f.getAbsolutePath(),f.getParent() , f.getName());
total++;
}else{
changeFileName(f.getAbsolutePath());
}
}
}
}
public static void encode(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//重编译文件内容
enConderFile(f);
total++;
}else{
encode(f.getAbsolutePath());
}
}
}
}
public static void delete(String filePath){
if(total %50==0){System.out.println("total:"+total);}
File file= new File(filePath);
if(file.exists()){
File[] filesList = file.listFiles();
for (File f : filesList) {
if(f.isFile()){
//删除原来文件
deleteFile(f.getAbsolutePath() ,f.getName());
total++;
}else{
delete(f.getAbsolutePath());
}
}
}
}
public static void enConderFile(File file){
Runtime runTime=Runtime.getRuntime();
try {
runTime.exec("iconv -f gbk -t utf-8 "+file.getPath() +" -o " +file.getParent()+File.separator+"bak"+file.getName());
} catch (Exception e) {
System.out.println("iconv -f gbk -t utf-8 "+file.getPath() +" -o " +file.getParent()+File.separator+"bak"+file.getName());
}
}
public static void renameFile(String realPath,String path,String fileName){
if(fileName.startsWith("bak")){
Runtime runTime=Runtime.getRuntime();
try {
runTime.exec(" mv "+realPath +" "+path+File.separator+ fileName.replaceFirst("bak",""));
} catch (IOException e) {
System.out.println(" mv "+realPath +" "+path+File.separator+ fileName.replaceFirst("bak",""));
}
}
}
//删除文件
public static void deleteFile(String realPath,String fileName){
String regPath = "^[//d]{4}-[//d]{2}-[//d]{2}.txt$";
Pattern pa=Pattern.compile(regPath);
if(pa.matcher(fileName).find()){
new File(realPath).delete();
}
}
}
分享到:
相关推荐
HIS数据库从Window迁移到Linux平台的解决方案.pdf
swing 开发 Linux和window系统解决乱码参考文档,个人总结,不喜勿碰
本文讲述了在Linux主机与windows主机之间如何互传文件的方法。因为有时linux主机中的一些文件可能会在windows环境下用到。例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为 word文档的插图。又或者...
ubuntu解压乱码python解决方案 主要针对uef-8解决,在window下压缩包在ubuntu下乱码问题
unison 双向同步文件工具 可在linux下和window系统下使用unison 双向同步文件工具 可在linux下和window系统下使用
最近发现乱码问题很烦,找了许多资料,自己总结了一些东西,主要是web页面的乱码,请大家指正
java代码利用Jsch实现在windows平台获取linux服务器文件,已包含 jsch jar包
win下共享linux系统,文件相互传递
linux平台、window平台通用压缩文件解压,可解压含中文压缩包。
window 与 Linux文件共享
有些记事本在linux下产生 在window下打开是乱的 通过这个工具查看就不会了
解决window文件在linux下^M 无法运行问题
window tomcat项目迁移到linux上环境的配置及迁移过程中遇到问题的总结.
无需安装任何软件,直接将pdfjs前端文件放到工程下,通过window.open写法直接引用pdfjs预览工具即可打开pdf文件。word文件可自行转为pdf文件后再通过该工具预览。
Window下,进行adb shell后,举个例子,如果你的sdcard下保存着中文字符文件名的文件,则在CMD下显示是一些无规律的中文并夹杂着乱码。 出现这种情况的原因是: Android中使用的是UTF-8字符,而CMD默认字符集是ANSI...
首先执行根目录下的sql,然后在CloudSystem\WEB-INF\classes下在address.properties修改文件存法的路径(linux例如/usr/local,Window如E:\\temp1122) 然后在dbconfig下修改你的 数据库 连接,然后大功告成了!打开 ...
使用pscp实现Windows 和 Linux服务器间远程传递文件 下载完成后,找到pscp.exe所在目录,按住shift+右键,选择“在此处打开命令窗口”。然后执行以下操作即可: 2.1 Linux服务器上的文件/文件夹下载到windows系统 1...
windows,linux下如何监听新建文件,复制文件,移动文件,剪切文件,修改文件.zip 监听文件修改事件,文件监控文件的新建,复制,修改,剪切,删除,修改操作 包括两个版本:windows版和linux版
读取ini文件的类。可以在window下和linux下使用,已测试。欢迎使用! 其实windows下已经有了读写ini文件的函数,主要是为linux写的,windows下也可以使用。
bat脚本实现将Windows文件上传至Linux服务器 不同选项实现具体功能、检查资源存在 、 确认上传