簡體   English   中英

在SDCard上寫問題-Android

[英]Writing on SDCard Problem - Android

我正在嘗試在HTC Hero手機中將文件寫入SD卡。 我使用以下命令在SDCard中創建文件:

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

其中path是我的externalStorageDirectory的路徑(即\\ sdcard)

當我記錄此文件的路徑時,它確實說\\ sdcard \\ filename.txt

但是,當我創建文件輸出流以寫入文件時,文件路徑突然更改為\\ data \\ data,而我無法訪問它。

有人可以幫忙澄清一下我如何在SD卡中創建文件然后對其進行寫入嗎?

謝謝!

編輯:

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日志時,它將進入專用數據存儲。

使用Environment.getExternalStorageDirectory()作為SD卡路徑。

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

getFileStreamPath(..)從本地目錄讀取。 您的調試代碼是錯誤的。

Environment.getExternalStorageDirectory()將獲取sdcard的根文件夾。

@JAVADOC

應用程序不應直接使用此頂級目錄,以避免污染用戶的根名稱空間。 應將應用程序專用的所有文件放在Context.getExternalFilesDir返回的目錄中,如果卸載了應用程序,系統將負責刪除該目錄。 其他共享文件應放在getExternalStoragePublicDirectory(String)返回的目錄之一中。

/ data / data / ...此位置用於存儲軟件包的文件,因此請嘗試以下代碼:

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM