2016-08-19 83 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”以使您的特定目录 –

相关问题