【问题标题】:Getting directory list from URL in Android从Android中的URL获取目录列表
【发布时间】:2011-12-30 10:02:14
【问题描述】:
我们如何从 URL 中获取目录列表。例如来自 abc.com/myfolders?在 Android 中。
如果 URL 中有以下文件夹
- abc.com/myfolders/folder1
- abc.com/myfolders/folder2
- abc.com/myfolders/folder3
- abc.com/myfolders/folder4
那么如何填充列表
文件夹 1
文件夹2
文件夹3
文件夹4
【问题讨论】:
标签:
android
url
directory
【解决方案1】:
您无法从 URL 获取文件夹列表,除非 URL 配置为使用有效的额外路径元素进行响应。 URL 不一定是服务器文件系统的反映,因此也不是文件夹结构。
听起来您想要一些类似于某些 Web 服务器允许文件浏览的标准方式的东西。即,当您导航到
http://server/a/path/
Web 服务器响应一个 HTML 页面,该页面列出了服务器上该文件夹的内容。
否则,您将无法在 URL 中找到“文件夹”。
如果我没有抓住重点,那么描述字符串连接的任何其他答案都应该有效。
【解决方案2】:
试试下面的代码
String absolutePath = "abc.com/myfolders/folder1";
String directoryName = null;
if((absolutePath != null) && (absolutePath.length()>0)){
int indexOfFileSeparator = absolutePath.lastIndexOf("/");
if (indexOfFileSeparator >= 0) {
directoryName = absolutePath.substring(indexOfFileSeparator + 1);
}
}
System.out.println("...shortStr..." + directoryName);
【解决方案3】:
String shortStr = longStr.substring(longStr.lastIndexOf("/") + 1);
应该这样做。
【解决方案4】:
我知道为时已晚,但我将这个答案发布给其他正在寻找相同答案的用户。
您可以编写 PHP Web 服务来获取位于服务器特定文件夹中的文件列表。
<?php
$path = realpath('uploadAudio');
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $filename)
{
if (strpos($filename,'extension of file like (.mp3) or (.txt)') !== false)
$filenm= basename($filename);
?>
<a href = "yourserverlink/Foldername/foldername/<?php echo $filenm ?>"><?php echo $filenm ?></a><br/>
<?php
}
?>
然后在您的 java 或 android 代码中调用此服务。