如何在下载文件时设置手机内存的路径?

时间:2016-08-19 06:01:05

标签: android android-studio filepath

  

我正在开发一个可以下载.mp3文件的Android应用程序。   我为下载文件设置的路径是   "/sdcard/downloadedfile.mp3"。它将转向SD卡

。 我想设置设备内部存储器的路径。因此,没有SD卡的设备应该默认为内部存储器。

任何人都可以为我找到解决方案..>?

3 个答案:

答案 0 :(得分:1)

由于内部存储位置受权限保护,您提供的任何位置只能由您的应用程序访问。您可以这样做。

(1)在"外部"上提供文件路径。存储这就是您现在正在做的事情,完成后,复制到内部存储,然后删除外部存储上的文件。

(2)创建一个ContentProvider,DownloadManager可以写入并为其提供与此ContentProvider对应的URI。您实现的ContentProvider可以将文件写入内部存储,因为它将在您的应用程序的上下文中运行。

答案 1 :(得分:1)

以下是内部存储文件的代码:

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

并且忘记获得写入存储空间的许可。

答案 2 :(得分: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上添加权限和运行时权限