无法在我的应用程序中使用ESNote Editor打开.txt文件

时间:2014-04-01 20:54:57

标签: java android

我已经实现了一个UI,它显示了/data/data/com.example.motionsense/files/scaninfo/的内容,这是txt文件列表所在的位置。选择一个时,它会打开可显示这些文本文件的程序,例如ESNote Editor。但是,当我尝试使用ESNote编辑器打开文件时,它会显示错误"无效路径"并显示一个空白文档。

我之前使用ESNote Editor打开了这些文本文件,但是当我的应用程序用它打开文件时它不起作用。我认为它与文件路径有关,当我单击打开显示的文件时,它没有给出ESNote Editor的正确路径以打开文件。香港专业教育学院试图修复代码,并记录我认为可以解决问题,但它再次在日志中出现错误,我不知道该怎么做。

04-01 21:50:53.101: E/PATHWAY(32762): /data/data/com.example.motionsense/files/scaninfo_01_04_2014_21_37_19
04-01 21:50:53.101: E/LookHere(32762): file:///data/data/com.example.motionsense/files/scaninfo_01_04_2014_21_37_19.txt

有谁知道这是不是问题?我在下面发布了我的代码。我也知道文件位置在数据/数据文件夹中,但是我的手机是root用户,我已经测试过使用ESNote Editor打开文件而不使用我的应用程序,它可以工作。

private void getDir(String dirPath) {

        myPath.setText("Location: " + dirPath);
        item = new ArrayList<String>();
        fileList = new ArrayList<String>();
        File f = new File(dirPath);
        File[] files = f.listFiles();

        if (!dirPath.equals(root)) {
            item.add(root);
            fileList.add(root);
            item.add("../");
            fileList.add(f.getParent());
        }

        for (int i = 0; i < files.length; i++) {
            File file = files[i];

            if (!file.isHidden() && file.canRead()) {
                fileList.add(file.getPath());
                if (file.isDirectory()) {
                    item.add(file.getName() + "/");
                } else {
                    item.add(file.getName());
                }
            }
        }

        ArrayAdapter<String> fileList = new ArrayAdapter<String>(this,
                R.layout.row, item);
        setListAdapter(fileList);
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        //String s = myPath.getText().subSequence(11,myPath.getText().length());
        Log.e("PATHFOOL", fileList.get(position).replace("//", "/"));
        File file = new File(fileList.get(position)+".txt".replace("//", "/"));
        Log.e("LookHere", Uri.fromFile(file).toString());
        if (file.isDirectory()) {
            if (file.canRead()) {
                // openning

                getDir(fileList.get(position));
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.fromFile(file));
                intent.setType("text/plain");
                startActivity(intent);

            } else {
                new AlertDialog.Builder(this)
                        .setIcon(R.drawable.ic_launcher)
                        .setTitle(
                                "[" + file.getName()
                                        + "] folder can't be read!")
                        .setPositiveButton("OK", null).show();


                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.fromFile(file));
                intent.setType("text/plain");
                startActivity(intent);
            }
        } else {
            new AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher)
                    .setTitle("[" + file.getName() + "]")
                    .setPositiveButton("OK", null).show();


            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.fromFile(file));
            intent.setType("text/plain");
            startActivity(intent);
        }
    }

0 个答案:

没有答案