搜索出现在Android设备中的所有.pdf文件

如何通过编程方式搜索Android设备中的所有.pdf和.doc文件?搜索出现在Android设备中的所有.pdf文件

回答:

尝试使用下面的代码,这将适用于你。

public void walkdir(File dir) { 

String pdfPattern = ".pdf";

File listFile[] = dir.listFiles();

if (listFile != null) {

for (int i = 0; i < listFile.length; i++) {

if (listFile[i].isDirectory()) {

walkdir(listFile[i]);

} else {

if (listFile[i].getName().endsWith(pdfPattern)){

//Do what ever u want

}

}

}

}

}

编辑

要在整个SD卡的呼叫搜索使用

walkdir(Environment.getExternalStorageDirectory()); 

回答:

看一看here

Basicly获得起始目录,然后调用这个函数 “清单”用过滤器(FilenameFilter)然后遍历子目录。不知道是否有一个功能可以完成这一切。

回答:

看一看Here

文件一样,如果你希望所有的PDF文件,然后扩展名为“.PDF”用这个来得到设备的所有PDF文件的变更延期。

回答:

下载源代码从这里(Open pdf file from sdcard in android programmatically)

在摇篮文件中添加此相关性:

compile ‘com.github.barteksc:android-pdf-viewer:2.0.3’ 

MainActivity.java:

package com.pdffilefromsdcard; 

import android.Manifest;

import android.app.ProgressDialog;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.os.Environment;

import android.support.v4.app.ActivityCompat;

import android.support.v4.content.ContextCompat;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.Toast;

import java.io.File;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

public class MainActivity extends AppCompatActivity {

ListView lv_pdf;

public static ArrayList<File> fileList = new ArrayList<File>();

PDFAdapter obj_adapter;

public static int REQUEST_PERMISSIONS = 1;

boolean boolean_permission;

File dir;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

}

private void init() {

lv_pdf = (ListView) findViewById(R.id.lv_pdf);

dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath());

fn_permission();

lv_pdf.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

Intent intent = new Intent(getApplicationContext(), PdfActivity.class);

intent.putExtra(“position”, i);

startActivity(intent);

Log.e(“Position”, i + “”);

}

});

}

public ArrayList<File> getfile(File dir) {

File listFile[] = dir.listFiles();

if (listFile != null && listFile.length > 0) {

for (int i = 0; i < listFile.length; i++) {

if (listFile[i].isDirectory()) {

getfile(listFile[i]);

} else {

boolean booleanpdf = false;

if (listFile[i].getName().endsWith(“.pdf”)) {

for (int j = 0; j < fileList.size(); j++) {

if (fileList.get(j).getName().equals(listFile[i].getName())) {

booleanpdf = true;

} else {

}

}

if (booleanpdf) {

booleanpdf = false;

} else {

fileList.add(listFile[i]);

}

}

}

}

}

return fileList;

}

private void fn_permission() {

if ((ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {

if ((ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.READ_EXTERNAL_STORAGE))) {

} else {

ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},

REQUEST_PERMISSIONS);

}

} else {

boolean_permission = true;

getfile(dir);

obj_adapter = new PDFAdapter(getApplicationContext(), fileList);

lv_pdf.setAdapter(obj_adapter);

}

}

@Override

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if (requestCode == REQUEST_PERMISSIONS) {

if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

boolean_permission = true;

getfile(dir);

obj_adapter = new PDFAdapter(getApplicationContext(), fileList);

lv_pdf.setAdapter(obj_adapter);

} else {

Toast.makeText(getApplicationContext(), “Please allow the permission”, Toast.LENGTH_LONG).show();

}

}

}

}

PdfActivity.java :

package com.pdffilefromsdcard; 

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import com.github.barteksc.pdfviewer.PDFView;

import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener;

import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;

import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle;

import com.shockwave.pdfium.PdfDocument;

import java.io.File;

import java.util.List;

public class PdfActivity extends AppCompatActivity implements OnPageChangeListener,OnLoadCompleteListener {

PDFView pdfView;

Integer pageNumber = 0;

String pdfFileName;

String TAG=”PdfActivity”;

int position=-1;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_pdf);

init();

}

private void init(){

pdfView= (PDFView)findViewById(R.id.pdfView);

position = getIntent().getIntExtra(“position”,-1);

displayFromSdcard();

}

private void displayFromSdcard() {

pdfFileName = MainActivity.fileList.get(position).getName();

pdfView.fromFile(MainActivity.fileList.get(position))

.defaultPage(pageNumber)

.enableSwipe(true)

.swipeHorizontal(false)

.onPageChange(this)

.enableAnnotationRendering(true)

.onLoad(this)

.scrollHandle(new DefaultScrollHandle(this))

.load();

}

@Override

public void onPageChanged(int page, int pageCount) {

pageNumber = page;

setTitle(String.format(“%s %s/%s”, pdfFileName, page + 1, pageCount));

}

@Override

public void loadComplete(int nbPages) {

PdfDocument.Meta meta = pdfView.getDocumentMeta();

printBookmarksTree(pdfView.getTableOfContents(), “-“);

}

public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) {

for (PdfDocument.Bookmark b : tree) {

Log.e(TAG, String.format(“%s %s, p %d”, sep, b.getTitle(), b.getPageIdx()));

if (b.hasChildren()) {

printBookmarksTree(b.getChildren(), sep + “-“);

}

}

}

}

以上是 搜索出现在Android设备中的所有.pdf文件 的全部内容, 来源链接: utcz.com/qa/261371.html

回到顶部