【问题标题】:In Android is it possible to download any file from server directly to /data/data/ path of app?在 Android 中,是否可以将任何文件从服务器直接下载到应用程序的 /data/data/ 路径?
【发布时间】:2014-09-10 15:10:05
【问题描述】:

我想将文件从服务器直接下载到我的应用程序的 data/data/ 路径。目前我正在使用外部存储的下载管理器下载文件。您能否建议是否有任何方法可以直接下载到应用程序的数据/数据/路径。

补充一点,Android 的默认 DownloadManager 不提供任何选项来执行此操作。

提前致谢

【问题讨论】:

  • 你必须自己实现,因为除了你可以访问内部路径之外没有应用程序

标签: android download android-download-manager


【解决方案1】:

算法如下

  1. 创建一个异步任务文件

  2. 使用 httpGet 或 Post 连接到服务器

  3. 将响应存储到 data/data/packagename/mydownload`

    以下代码可能对您有所帮助。

    fileName = fileName.replaceAll("[^a-zA-Z0-9- _,()]+","")+ ".(your format example PDF)";
    
        client = new DefaultHttpClient();
    
            request = new HttpGet(URL);
    
    
    
        response = client.execute(request);
    
    
    
        HttpEntity entity = response.getEntity();
        String PATH = "/data/data/" + context.getPackageName() + "/mydownload/";
        File file = new File(PATH);
        file.mkdirs();
    
    
    
        final long lenghtOfFile = entity.getContentLength();
        File outputFile = new File(file, fileName);
    
        Log.i("length",lenghtOfFile +fileName);
        //if(outputFile.exists())   {
        FileOutputStream fos = new FileOutputStream(outputFile);
    
        InputStream  is = entity.getContent();
    
    
    
        byte[] buffer = new byte[1024];
        int len1 = 0;
        long total = 0;
    
    
        while ((len1 = is.read(buffer)) != -1) {
            fos.write(buffer, 0, len1); 
    
            }
    
        }
        fos.close();
        is.close();
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 2021-01-20
    • 2020-06-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多