`
tianshibaijia
  • 浏览: 1125528 次
文章分类
社区版块
存档分类
最新评论

window 下文件传给linux 乱码问题 解决方案

 
阅读更多

装载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();
}
}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics