화요일, 11월 22, 2011

특수문자 포함된 파일 지우기

Get i-node number

ls -i

Find and remove file

find . -inum [i-node number] -exec rm -rf {} \;

월요일, 8월 08, 2011

파일 문자 변환


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

/**
* @author peter
*
*/
public class EncodingConverter {

String fromCharset;
String toCharset;

String baseDir;
String encodedDir;

EncodingConverter(String baseDir, String fromCharset, String toCharset) {
this.fromCharset = fromCharset;
this.toCharset = toCharset;
this.baseDir = baseDir;

this.encodedDir = baseDir + File.separator + "encoded";

File encoded = new File(encodedDir);
encoded.mkdir();

}

public boolean converts(File file) {
if (!file.exists())
return false;
if (file.isDirectory() && !file.getName().startsWith(".")) {
String as[] = file.list();
if (as != null && as.length > 0) {
for (int i = 0; i < as.length; i++)
if (!converts(new File(file, as[i])))
return false;
}
}

if (!file.getName().startsWith(".") && file.isFile()) {

String toPath = encodedDir + file.getParent().substring(baseDir.length());
System.out.println(toPath);
File dir = new File(toPath);
dir.mkdirs();
return convert(file, new File(toPath + File.separator + file.getName()));

} else
return true;
}

public boolean convert(File fromFile, File toFile) {
try {

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fromFile), fromCharset));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(toFile), toCharset));

String s;
while ((s = in.readLine()) != null) {
out.write(s);
out.newLine();
}
in.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

public static void main(String[] args) {
EncodingConverter converter = new EncodingConverter("D:\\work\\src", "MS949", "UTF-8");

converter.converts(new File(converter.baseDir));
}
}