java - 如何替换从服务器存储中具有相同文件名的下载图像?

标签 java android

我实现了用户可以从服务器保存图像的功能。 这是我的代码。

BasicImageDownloader imageDownloader = new BasicImageDownloader(new BasicImageDownloader.OnImageLoaderListener()
                                {
                                    @Override
                                    public void onError(BasicImageDownloader.ImageError error)
                                    {
                                        Toast.makeText(mContext, "Error code " + error.getErrorCode() + ": " + error.getMessage(), Toast.LENGTH_LONG).show();
                                    }

                                    @Override
                                    public void onProgressChange(int percent)
                                    {

                                    }

                                    @Override
                                    public void onComplete(Bitmap result)
                                    {
                                        final Bitmap.CompressFormat mFormat = Bitmap.CompressFormat.JPEG;
                                        final File myImageFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator
                                                + "Android" + File.separator
                                                +"data" +File.separator
                                                +"test" +File.separator
                                                + "profileimage" +File.separator
                                                + mPost.get(i).getUid() + "." + mFormat.name().toLowerCase());
                                        BasicImageDownloader.writeToDisk(myImageFile, result, new BasicImageDownloader.OnBitmapSaveListener() {
                                            @Override
                                            public void onBitmapSaved() {
                                                Toast.makeText(mContext, "Image saved as: " + myImageFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
                                            }

                                            @Override
                                            public void onBitmapSaveError(BasicImageDownloader.ImageError error) {
                                                Toast.makeText(mContext, "Error code " + error.getErrorCode() + ": " +
                                                        error.getMessage(), Toast.LENGTH_LONG).show();
                                                error.printStackTrace();
                                            }


                                        }, mFormat, false);
                                    }
                                });
                                imageDownloader.download("link", true);

它工作得很好,但只要存储位置中存在相同的名称。它抛出异常:“文件已经存在”。 现在的问题是当存储位置中存在相同文件时如何替换下载的图像?

最佳答案

我在网上找到了 BasicImageDownloader 类。 writeToDisk 的最后一个参数用于覆盖。 因此,如果您像这样将其设置为 true:

BasicImageDownloader.writeToDisk(..., true);

它应该覆盖文件。

关于java - 如何替换从服务器存储中具有相同文件名的下载图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57344594/

相关文章:

java - 如何在网页中嵌入 Java 小程序?

java - 无法在 ListView 中收听 setOnItemClickListener - Android

java - 如何在 Google 日历 java API 中使用 FreeBusyResponse?

java - 何时为 CardLayout 创建面板?

android - 在断开连接(包括断开的 TCP 连接)的情况下以安全的方式重新使用 asmack 连接或重新创建它?

android - 隐藏或移除 CardIO Scann 屏幕上的键盘按钮 (Android)

android - 如何区分onDestroy是否会在onPause之后被调用

android - 什么是 ButtonBarLayout,我们应该如何使用它?

java - 如何为 jackson 启用严格类型解析?

java - 为数据驱动项目创建一个可运行 Jar,为输入数据定制 excel