2017-07-27 65 views
0

我想編寫一個程序,該文件用一些內容將文件保存在移動設備中。問題是我無法在移動設備的文件管理器中看到該文件。如何看到和在哪個文件夾?如何訪問我在內部存儲器中保存的文件

下面是代碼:

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import java.io.FileOutputStream; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     String fileName = "MyFile"; 
     String content = "hello world"; 

     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(fileName, Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

編輯1:更新的代碼

public class MainActivity extends AppCompatActivity { 



    String content = "hello world"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    File f= getExternalFilesDir("arnav"); 
     Toast.makeText(this,""+f,Toast.LENGTH_SHORT).show(); 
File f1=new File(f,"ank.txt"); 
     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(f1.getAbsolutePath(), Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

現在的問題是,文件夾(arnav)是越來越創建,但文件(ank.txt)是沒有得到創建?如何解決?

回答

0

要訪問通過你需要去以下位置的應用程序存儲的文件:內部存儲>安卓>數據> com.package_name.app_name>文件,在這裏你可以找到應用程序保存的數據。

+0

問題產生的是,「com.package_name.app_name」是不是在這種情況下得到建立。我做錯了什麼嗎?我需要提供清單中的任何權限嗎? – Ankit

+0

它應該被創建。這樣的文件將始終爲應用程序數據創建。請仔細檢查,您的設備的內部存儲。 –

0

「openFileOutput()」方法會將文件保存在此路徑中:/ data/data/package-name/files/ 由於「/ data/data」目錄受保護,您無法看到文件,只有在根模式下可以看到的移動設備。

+0

然後該怎麼做才能將文件保存在移動設備中,以便在文件管理器 – Ankit

+0

中可以看到,您可以將文件保存在外部存儲器中。 「Environment.getExternalStorageDirectory()」它返回主共享/外部存儲目錄。然後它在文件管理器中可見。 –

+0

但它應該保存在內部存儲中,就好像SD卡不存在那麼我的文件將不會顯示? – Ankit

0
MainActivity.this.getFilesDir().getAbsolutePath() 

將返回你的文件路徑由 openFileOutput

相關問題