亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從文件資源管理器中選擇的.txt文件的真實路徑

從文件資源管理器中選擇的.txt文件的真實路徑

慕少森 2019-06-16 15:15:05
從文件資源管理器中選擇的.txt文件的真實路徑我正在開發一個應用程序,在這個應用程序中,我希望能夠在.txt文件上從應用程序導出和導入一些數據。應用程序的最小API為21。出口部分運行良好,但我對進口部分有困難。我打開文件資源管理器:butImportPatient.setOnClickListener(new View.OnClickListener() {     @Override     public void onClick(View view) {          Intent intent = new Intent();          intent.setAction(Intent.ACTION_OPEN_DOCUMENT);          intent.setType("*/*");          startActivityForResult(intent, IMPORTPATIENT_ACTIVITY_REQUEST_CODE);     }});這看起來很管用。但是我的onActivityResult沒有工作,我沒有找到如何從URI中獲取文件?,F在,這是我的代碼:@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {       if (requestCode == IMPORTPATIENT_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {             File file = new File(data.getData().getPath()) ;             String path = file.getAbsolutePath() ;             StringBuilder text = new StringBuilder();             try {                 BufferedReader br = new BufferedReader(new FileReader(path));                 String line;                 while ((line = br.readLine()) != null) {                     text.append(line);                     text.append("\n");                 }                 br.close();             } catch (IOException e) {                 e.printStackTrace();             }             AlertDialog.Builder builder = new AlertDialog.Builder(this) ;             builder.setMessage(path)                     .show() ;         }  }這是我在這里看到的多個帖子的組合,但似乎都沒有效果。我知道這條路:/document/home:List.txt它創建FileNotFoundException。如何獲得文件的真正路徑?
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

我沒有找到如何從URI中獲取文件。

沒有檔案。ACTION_OPEN_DOCUMENTACTION_GET_CONTENT不要打開文件。他們打開一份文件。那份文件強權做個檔案??赡懿粫?。那,那個Uri可能指的是:

  • 外部存儲的本地文件
  • 另一個應用程序內部存儲的本地文件
  • 可移動存儲的本地文件
  • 加密并需要動態解密的本地文件。
  • 中保存的字節流。

    BLOB

    數據庫中的列
  • 一段需要先由另一應用程序下載的內容
  • .等等

如何獲得文件的真正路徑?

你沒有。

如果希望只接受文件,請集成文件選擇器庫而不是使用ACTION_OPEN_DOCUMENTACTION_GET_CONTENT..請記住,對外部存儲的文件系統訪問將在AndroidQ中消失。

如果你用ACTION_GET_CONTENT的方案Uri你得到的是file,然后getPath()將是一個文件系統路徑。

否則,你得明白你不知道這份文件是從哪里來的停止思考“文件的真實路徑”。使用ContentResolveropenInputStream()若要將內容復制到您控制的某個文件,請使用該文件。


查看完整回答
反對 回復 2019-06-16
  • 1 回答
  • 0 關注
  • 478 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號