2010-12-01 15 views
1

私は自分のHTC Hero電話機のSDカードにファイルを書き込もうとしています。私はSDCardでファイルを作成します:SDCardに書き込む問題 - Android

ファイル=新しいファイル(path.getAbsolutePath()、 "Filename.txt");

私は、このファイルのパスを記録するとき、私はたFileOutputStreamを作成するときにパスが私のexternalStorageDirectoryへのパス(すなわち\ SDカード)

で、それは、しかし、\ SDカード\ファイル名.txt

を言うん

ファイルに書き込むために、突然ファイルパスが\ 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

getFileStreamPath(..)ローカルディレクトリから読み取ります。あなたのデバッグコードは間違っています。

+0

Ohh ...私はgetFileStreamPathがファイルのパスを取得したと思っています。 :) – Imelza

0

Environment.getExternalStorageDirectory()(SDカードパス用)

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

パス= Environment.getExternalStorageDirectory(); Log.d( "SDCARDPLSWORK"、path.toString()); try { \t myFile =新しいファイル(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電子) {\t e.printStackTrace(); – Imelza

+0

私は思っていることを残念に思っていますが、動作していません。 – Imelza

+0

私はむしろEnvironment.getExternalStorageDirectory()+ File.pathSeparator + "yourFilename.png"または最終ファイルfile = new File(Environment.getExternalStorageDirectory()、 "yourFilename.png");)を使用します。 –

0

Environment.getExternalStorageDirectory()は、sdcardのルートフォルダを取得します。

@JAVADOC

アプリケーションが直接ユーザーのルート 名前空間を汚染 避けるために、このトップレベルディレクトリ を使用しないでください。 がアプリケーションに添付されているファイルは、 ディレクトリにあり、 Context.getExternalFilesDirによって返され、 システムがアプリケーションをアンインストールした場合に削除処理を行います。他の 共有ファイルは、 getExternalStoragePublicDirectory(String)によって返されるディレクトリのうちの1つの に配置する必要があります。

/データ/データ/ ...この場所はあなたのパッケージのためのファイルを格納するために使用されているので、以下のコードを試してみてください。

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(); 
} 
関連する問題