2010-12-01 60 views
1

我正尝试在我的HTC Hero手机中将文件写入我的SD卡。我使用以下命令在SDCard中创建文件:在SDCard上写入问题 - Android

File = new File(path.getAbsolutePath(),“Filename.txt”);

其中path是我externalStorageDirectory(即\ SD卡)

当我登录这个文件的路径,但它说\ SD卡\ FILENAME.TXT

但是,当我创建一个FileOutputStream要写入文件,突然将文件路径更改为\ data \ data,我无法访问它。

有人可以请帮助澄清如何我可以在SDCard中创建一个文件,然后写入它?

谢谢!

编辑:

path = Environment.getExternalStorageDirectory(); 
Log.d("SDCARDPLSWORK", path.toString()); 
    try 
    { 
     myFile = new File(path.getAbsolutePath(), "SensorValues.txt"); 
     boolean i = myFile.createNewFile(); 
     Log.d("SDCARDPLSWORK", myFile.toString() + " " + i); 
     fos = new FileOutputStream(myFile); 
     Log.d("FILEANDROID", getFileStreamPath("SensorValues.txt").toString()); 
    } 

    catch(FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 

这是我在做什么。直到SDCARDPLSWORK是正确的部分,但是当涉及到FILEANDROID日志时,它会转到专用数据存储。

回答

0

使用SD卡路径的Environment.getExternalStorageDirectory()

Environment.getExternalStorageDirectory()+"/yourFilename.png" 
+0

路径= Environment.getExternalStorageDirectory(); Log.d(“SDCARDPLSWORK”,path.toString()); 尝试 { \t myFile = new File(path.getAbsolutePath(),“SensorValues.txt”); \t布尔型i = myFile.createNewFile(); \t Log.d(“SDCARDPLSWORK”,myFile.toString()+“”+ i); \t fos = new FileOutputStream(myFile); \t Log.d(“FILEANDROID”,myFile。getAbsolutePath()); (FileNotFoundException e) } catch(FileNotFoundException e) { \t e.printStackTrace(); – Imelza 2010-12-01 08:18:48

+0

对不起,我在做什么,我认为,但它不工作。 – Imelza 2010-12-01 08:22:34

0

Environment.getExternalStorageDirectory()将获取sdcard的根文件夹。

@JAVADOC

应用程序不应该直接使用 这个顶级目录,以 避免污染用户的根 命名空间。任何私密文件 应该放置在 返回的目录Context.getExternalFilesDir,如果 卸载应用程序, 系统将负责删除。其他 共享文件应放在 getExternalStoragePublicDirectory(String)返回的目录中的一个 中。

/数据/数据/ ...这个位置是用来存储文件为你的包,所以尝试下面的代码:

File path = getApplicationContext().getFilesDir(); // get your private folder 
Log.d("SDCARDPLSWORK", path.toString()); 
File myFile; 
FileOutputStream fos; 
try { 
    myFile = new File(path.getAbsolutePath(), 
      "SensorValues.txt"); 
    boolean i = myFile.createNewFile(); 
    Log.d("SDCARDPLSWORK", myFile.toString() + " " + i); 
    fos = new FileOutputStream(myFile); 
    Log.d("FILEANDROID", getFileStreamPath("SensorValues.txt") 
      .toString()); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
}