【问题标题】:Allow User To Select Path For Save File in Android允许用户在 Android 中选择保存文件的路径
【发布时间】:2017-01-20 14:46:01
【问题描述】:

我正在为我们的客户开发一个应用程序,但我们遇到了一个小功能,所以需要您的帮助,

场景:我们开发了一种循环视图,用户可以从中查看按类别列出的图像、歌曲和视频列表,现在用户可以选择查看或收听图像、音频或视频,并且还有另一种下载方式。

需要帮助@我们已经使用一个静态路径来完成此操作,用户可以在其中保存所有文件,但我们的客户希望允许用户选择保存文件的路径,为此我们需要文件对话框从哪里用户可以选择位置。

注意: 伙计们请注意,对于一个静态路径,我们已经完成了这项工作并且它运行得非常好,而且我们将该路径存储在本地数据库中以便我们以后可以使用它,所以现在只需保留我们如何允许用户选择保存文件的位置?

【问题讨论】:

  • 我已经检查过了,但它是文件选择器而不是位置选择器,我不必选择文件,我必须选择可以存储文件的位置
  • 好问题。据我所知,您需要搜索列出特定存储(内部/外部)上的文件夹。然后在选择该文件夹时,您需要再次列出其中的文件夹。你可以这样做。我为您找到了示例,但不确定它是否有效。 developer.samsung.com/technical-doc/…
  • @ShabbirDhangot 谢谢,目前我正在寻找那个,即使我正在考虑使用文件资源管理器,我可以应用一些逻辑来只选择文件夹而不是文件,也让我检查你的链接跨度>
  • 我也是,我刚成为一名摄影师 :D 所以使用 LAN 选项,我将 GIG 图像传输到我的移动设备,当我在上班的路上,检查并分享它们instagram,最近我发现需要批量修改图像,在几天内进行了如此多的搜索和反复试验,如果没有研究 .net win 应用程序只需要 2 小时,我写了选择文档,加载所有文件,修改文件,但我找不到保存文件的方法,还有关于将 uri 转换为绝对通行证的所有资源,对于所有平台,对我来说都失败了,我想知道还有多少应用程序仍在运行

标签: android file android-file


【解决方案1】:

我认为Android DirectoryChooser 可以帮助您选择文件保存目录。

清单

您需要声明DirectoryChooserActivity 并请求android.permission.WRITE_EXTERNAL_STORAGE 权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
<application>
    <activity android:name="net.rdrei.android.dirchooser.DirectoryChooserActivity" />
</application>

活动

要选择目录,请从您的应用逻辑启动 Activity:

 final Intent chooserIntent = new Intent(this, DirectoryChooserActivity.class);

    final DirectoryChooserConfig config = DirectoryChooserConfig.builder()
            .newDirectoryName("DirChooserSample")
            .allowReadOnlyDirectory(true)
            .allowNewDirectoryNameModification(true)
            .build();

    chooserIntent.putExtra(DirectoryChooserActivity.EXTRA_CONFIG, config);

// REQUEST_DIRECTORY is a constant integer to identify the request, e.g. 0
startActivityForResult(chooserIntent, REQUEST_DIRECTORY);

onActivityResult 方法中处理结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_DIRECTORY) {
        if (resultCode == DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED) {
            handleDirectoryChoice(data
                .getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR));
        } else {
            // Nothing selected
        }
    }
}

【讨论】:

  • 很高兴知道。它也会帮助我。谢谢分享
  • 感谢您的帮助,我根据需要进行了一些更改,但它可以正常工作...
  • 如何在所选目录中请求创建新文件?
猜你喜欢
  • 2019-04-30
  • 1970-01-01
  • 2014-12-11
  • 2013-03-27
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多