public class SortUtil
{
/**
* insertionSort;
* @param data, array[];
* @param first, 0;
* @param last, array.length - 1;
*/
public static void insertionSort(Comparable[] data, int first, int last)
{
for(int i = first + 1; i <= last; i++)
{
Comparable temp = data[i];
int j = i - 1;
for(; j >= first && data[j].compareTo(temp) > 0; j--)
{
data[j + 1] = data[j];
}
data[j + 1] = temp;
}
}
/**
* getMaxCompare;
* @param data, array[];
* @return Max Value;
*/
public static Comparable getMaxCompare(Comparable[] data)
{
insertionSort(data, 0, data.length - 1);
return data[data.length - 1];
}
public static void main(String[] args)
{
Comparable[] data = {3,2};//,4,12,43,654,12,242,124,151,87,1,7,1,3,2,9,3,6,2,7,8};
insertionSort(data, 0 , data.length - 1);
for(int i = 0; i < data.length; i++)
{
System.out.print(data[i] +",");
}
System.out.println();
System.out.print(getMaxCompare(data));
}
}
public class FileEntity implements Comparable
{
/**
* 5.01.01.T05$12.11.20T28,12.11.20T28$12.11.20T45
*/
public static final String FileSeparatorTag = "T";
public String filename = "5.01.01.T05$12.11.20"+FileSeparatorTag+"28";
@Override
public int compareTo(Object obj)
{
String nextFileName = ((FileEntity) obj).filename;
return Integer.parseInt(this.filename.substring(this.filename.lastIndexOf(FileSeparatorTag) + 1)) - Integer.parseInt(nextFileName.substring(nextFileName.lastIndexOf(FileSeparatorTag) + 1));
}
public static void main(String[] args)
{
String tmp = "5.01.01.T05$12.11.20"+FileSeparatorTag+"28";;
String tmps = tmp.substring(tmp.lastIndexOf(FileSeparatorTag) + 1);
System.out.println("" + tmps);
}
}
public class FileClient
{
/**
* eg.dirs: 5.01.01.T05$12.11.20T28,12.11.20T28$12.11.20T45 getDirList
*
* @param filepath ,directory ;
* @return ,list directories;
*/
public static FileEntity[] getListDirs(String filepath)
{
List tmpList = new ArrayList();
File dir = new File(filepath);
File[] files = dir.listFiles();
for(int i = 0; i < files.length; i++)
{
String strFile = files[i].getAbsolutePath().substring(files[i].getAbsolutePath().lastIndexOf(File.separator) + 1);
System.out.println(strFile.indexOf("$") + "," + strFile);
if(files[i].isDirectory() && strFile.indexOf("$") > 0 && strFile.lastIndexOf("$") < strFile.length() - 1
&& strFile.lastIndexOf(FileEntity.FileSeparatorTag) < strFile.length() - 1)
{
FileEntity entity = new FileEntity();
entity.filename = files[i].getAbsolutePath();
tmpList.add(entity);
}
}
if(tmpList.size() > 0)
{
FileEntity[] dirs = new FileEntity[tmpList.size()];
for(int i = 0; i < tmpList.size(); i++)
{
dirs[i] = (FileEntity)tmpList.get(i);
}
return dirs;
}
else
{
FileEntity entity = new FileEntity();
entity.filename = filepath;
return new FileEntity[]{entity};
}
}
/**
* getMaxDirAbsolutePath
*
* @param filepath , input dir, directory;
* @return , maxDirAbsolutePath;
*/
public static String getMaxDirAbsolutePath(String filepath)
{
FileEntity[] dirs = getListDirs(filepath);
for(int i = 0; i < dirs.length; i++)
{
System.out.println("dirs:" + dirs[i].filename);
}
SortUtil.insertionSort(dirs, 0, dirs.length - 1);
for(int i = 0; i < dirs.length; i++)
{
System.out.println("insertionSort:" + dirs[i].filename);
}
FileEntity maxFileEntity = (FileEntity)SortUtil.getMaxCompare(dirs);
String theMaxDir = maxFileEntity.filename;
System.out.println("theMaxDir:" + theMaxDir);
return theMaxDir;
}
/**
* writeProperties
*
* @param propFileName , properties file path;
* @param key , key;
* @param value , value;
*/
public static void writeProperties(String propFileName, String key, String value)
{
File propFile = new File(propFileName);
try
{
propFile.createNewFile();
Properties prop = new Properties();
// InputStream fis = new FileInputStream(propFileName);
// // 从输入流中读取属性列表(键和元素对)
// prop.load(fis);
// 调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。
// 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
OutputStream fos = new FileOutputStream(propFileName);
prop.put(key, value);// .setProperty(key, value);
// 以适合使用 load 方法加载到 Properties表中的格式,
// 将此 Properties 表中的属性列表(键和元素对)写入输出流
prop.store(fos, "Update '" + key + "' -->" + value);
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* test_readProperties
*
* @param propFileName
* @param key
* @param defaultValue
* @return
*/
public static String test_readProperties(String propFileName, String key, String defaultValue)
{
String value = defaultValue;
try
{
InputStream fis = new FileInputStream(propFileName);
Properties prop = new Properties();
prop.load(fis);
value = prop.getProperty(key, defaultValue);
}
catch(Exception e)
{
e.printStackTrace();
}
System.out.println("value:" + value);
return value;
}
/**
* eg.dirs: 5.01.01.T05$12.11.20T28,12.11.20T28$12.11.20T45
*
* @param args
*/
public static void main(String[] args)
{
String srcDirPath = "C:/scripts/";
String destPropPath = "./";
if(args.length == 2)
{
srcDirPath = args[0];
destPropPath = args[1];
}
destPropPath = destPropPath + "theMaxDir" + ".properties";
String theMaxDir = getMaxDirAbsolutePath(srcDirPath).replaceAll("\\\\", "\\/");
System.out.println("theMaxDir:" + theMaxDir);
System.out.println("user.dir=" + System.getProperty("user.dir"));
writeProperties(destPropPath, "theMaxDir", theMaxDir);
test_readProperties(destPropPath, "theMaxDir", srcDirPath);
}
}
分享到:
相关推荐
JAVA实现对文件夹“加密码压缩” 此资源解压后为一个文件夹,就是一个package包 (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题 不...
java文件夹排序,按时间、大小等排序。。。。。。
JAVA实现对文件夹“加密码压缩” 此资源解压后为一个文件夹,就是一个package包 (压缩后为Zip文件) 无需导入任何个人jar包 压缩后效果等同于用winrar给压缩包加密码 时间紧迫,暂时存在中文文件夹名称乱码问题...
java实现指定文件夹文件数的查询,输入指定文件夹,相应查询出,文件数,文件夹个数,耗费时间
java递归删除整个文件夹,可以文件夹中所有的文件和子文件夹
java使用swing编写sfp文件与文件夹上传功能,后续给大家升级同时多个目标地址上传
基于jdk7或以上java版本的文件夹大小统计功能实现,相对于传统的java获取文件再计算大小的方式要快速很多,支持统计指定类型,是否统计子文件夹
基于jdk7或以上java版本的java删除文件功能实现,主要类是SimpleFileVisitor,可删除指定类型文件,选择是否保存空文件夹
java实现遍历文件夹内的pdf,分别转成一张jpg图片,且图片名称为与原pdf名称一致。内含PDFRenderer.jar和itext-1.3.1.jar必用jar包
java编写,递归删除某一指定目录下所有文件夹,空文件夹下空文件夹
Java 实现文件夹及文件夹下的文件删除。
主要给大家介绍了关于Java文件、文件夹权限修改的两种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
用java实现的多级文件夹的复制,可用于文件复制的复制与备份
纯java实现,nio复制。其中文件夹复制同步使用channel实现,文件夹的交并集对比使用lamda实现,文件的同步比对逻辑通过比对文件的大小、日期、修改时间等实现
内建方法,java创建和删除文件夹、文件
java读取某个文件夹下的所有文件 很不错可以看看 不要分
感觉这样的状况不是很好就自己用java实现了简单的shell来管理这些自动下载的批量文件产生的文件夹和文件! 使用注意事项: 该程序默认的工作路径是c:\盘,建议在windows环境下利用这则小程序,linux下未测试。 这个...
用户java实现了文件夹的复制。主要是用了递归方法遍历文件夹下的子文件
改代码,用java简单的实现了文件夹、文件的复制
通过代码中的方法可以将指定的文件夹或文件删除