我正在制作一个应用程序,它用文件名创建excel表中的数据备份,后面跟着当前日期,如"myfile_01-01-2014“和"myfile_01-15-2014”等等.您可以看到日期是可变的。我想搜索关键字"myfile_“,这样我就可以根据创建的日期获得文件列表。我想使用最新的文件进行还原。
(Is it possieble)? "How" : "tell me any other way to do this";谢谢..。
发布于 2014-04-04 06:18:28
若要使用字符串关键字搜索文件,请使用以下函数,
public ArrayList<File> searchFile(File parent,final String searchKeyWord) {
ArrayList<File> result = new ArrayList<File>();
File[] files = parent.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String filename) {
return filename.contains(searchKeyWord);
}
});
for (File file : files) {
result.add(file);
}
return result;
}有关更多筛选选项,请使用字符串操作(如startsWith、endWith等)更改下面的行。
return filename.contains(searchKeyWord);发布于 2014-04-04 06:17:26
您可以使用递归搜索。在要开始搜索文件的目录路径(例如"/mnt/sdcard")中使用此函数。
public Vector<String> yourFiles = new Vector<String>();
private void searchInDirectory(String directory)
{
File dir = new File(directory);
if(dir.canRead() && dir.exists() && dir.isDirectory())
{
String []filesInDirectory = dir.list();
if(filesInDirectory != null)
{
for(int i=0; i<filesInDirectory.length; i++)
{
File file = new File(directory+"/"+filesInDirectory[i]);
if(file.isFile() && filesInDirectory[i].startsWith("myfile"))
{
yourFiles.add(directory+"/"+filesInDirectory[i]);
}
else if(file.isDirectory() )
{
searchInDirectory(file.getAbsolutePath());
}
}
}
}
}发布于 2014-04-04 06:21:53
试着和这个家伙
调用此方法如下
getAllDocument(Environment.getExternalStorageDirectory());方法是..。
public void getAllDocument(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
getAllDocument(listFile[i]);
} else {
listFile[i].getName();
if(!listFile[i].getAbsolutePath().startsWith("myfile_"))
{
//took this file into your wraaper or then just comapre for the newest with your logic
}
}
}
}
}https://stackoverflow.com/questions/22854790
复制相似问题