2016-08-19 82 views
1

我正在開發一個可以下載.mp3文件的Android應用程序。 我下載文件的路徑是 "/sdcard/downloadedfile.mp3"。這是去SD卡如何在下載文件時設置手機內存的路徑?

。 我想設置路徑到設備的內部存儲器。所以沒有SD卡的設備應該默認進入內部存儲器。

任何人都可以爲我找到解決方案..>?

+0

/SD卡添加的權限和運行權限不在可移動的micro SD卡的路徑中。它是設備的外部存儲器。不是微型SD卡。 – greenapps

+0

但是,硬編碼該路徑仍然是一個壞主意。使用答案。 – greenapps

回答

1

@android開發見習

我覺得你可以試試這個:

String fileName="name.mp3"; 
File folder = new File(Environment.getExternalStorageDirectory().getPath() + "/floderName/"); 

if (!folder.exists()) { 
    try { 
     folder.mkdirs(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     System.out.println("Default Save Path Creation Error:" + folder); 
    } 
} 

File logFile = new File(folder, fileName); 
if (!logFile.exists()) { 
    try { 
     logFile.createNewFile(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     System.out.println("Default Save Path Creation Error:" + logFile); 

    } 
} 

順便說一句, 請不要忘記在android6.0

+0

謝謝你工作...... :) –

1

由於內部存儲位置受到權限保護,您提供的任何位置都只能由您的應用程序訪問。您可以這樣做。

(1)在「外部」存儲上提供文件路徑這是您現在正在執行的操作,完成後,複製到內部存儲,然後刪除外部存儲上的文件。

(2)創建ContentProvider,讓DownloadManager可以寫入併爲其提供與此ContentProvider相對應的URI。您實現的ContentProvider可以將文件寫入內部存儲,因爲它將在應用程序的上下文中運行。

1

這裏是你的內部存儲文件代碼:

String songname= "Song_Name" ; 
File storageDir = Environment.getExternalStorageDirectory(); 
File.createTempFile(
       songname, /* prefix */ 
       ".mp3",   /* suffix */ 
       storageDir  /* directory */ 
     ); 

,不要忘記獲得許可,寫存儲。

+0

謝謝你的工作:) –

+0

你能告訴我如何在內存中創建一個新的文件夾並將其存儲在其中? –

+0

in storageDir varibale添加「/ myfoldername」以使您的特定目錄 –

相關問題