以编程方式从android中的/data/data/my.app/files路径获取文件

时间:2014-08-06 08:06:41

标签: android xml

我在此路径/data/data/my.app/files/new.xml中使用以下代码创建一个xml文件:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


                FileOutputStream fileos = null;
                try{
                    fileos = openFileOutput("new.xml", MODE_PRIVATE);

                }catch(FileNotFoundException e)
                {
                    Log.e("FileNotFoundException",e.toString());
                }
                XmlSerializer serializer = Xml.newSerializer();
                try{
                serializer.setOutput(fileos, "UTF-8");
                serializer.startDocument(null, Boolean.valueOf(true));
                serializer.startTag(null, "root");
                serializer.startTag(null, "Child1");
                serializer.endTag(null, "Child1");
                serializer.startTag(null, "Child2");
                serializer.attribute(null, "attribute", "value");
                serializer.endTag(null, "Child2");
                serializer.startTag(null, "Child3");
                serializer.text("Some text inside child 3");
                serializer.endTag(null,"Child3");
                serializer.endTag(null,"root");
                serializer.endDocument();
                serializer.flush();
                fileos.close();

                }catch(Exception e)
                {
                    Log.e("Exception","Exception occured in wroting");
                }

            }
}

现在我想用socket发送这个文件,但我不知道如何以编程方式访问文件路径。 我已经尝试了Environment对象中的大多数文件夹,比如Environment.getDataDirectory()。getAbsolutePath()但只返回/ data。 如何访问此路径并读取我的xml文件?

我确实看到了this链接,但我找不到答案。

1 个答案:

答案 0 :(得分:0)

要获取对您的私人文件夹的引用,您应该使用以下方法: getFilesDir()

此外,您必须声明此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>