Android 列出http服务器中存在的文件夹的文件

Android 列出http服务器中存在的文件夹的文件,android,Android,我有一个关于Http的问题。在android中,如何列出Http服务器中文件夹的文件 我可以从服务器下载文件。但我想检查文件夹中的文件。 我对此进行了很多探索,但未能找到解决方案。有谁能给我建议实现它的方法吗 在目标服务器上创建一个web服务方法,该方法(在Java中)调用 File myDir = new File(request.getRealPath("pathToMyDir")); ArrayList fileArray = new ArrayList(Arrays.asList(myD

我有一个关于Http的问题。在android中,如何列出Http服务器中文件夹的文件

我可以从服务器下载文件。但我想检查文件夹中的文件。
我对此进行了很多探索,但未能找到解决方案。有谁能给我建议实现它的方法吗

在目标服务器上创建一个web服务方法,该方法(在Java中)调用

File myDir = new File(request.getRealPath("pathToMyDir"));
ArrayList fileArray = new ArrayList(Arrays.asList(myDir.list()));
“getRealPath”方法已被弃用,但对我有效;-)我的文件位于我的web应用程序中的文件夹中。您的方法需要将ArrayList的内容打包成JSON字符串(作为返回)


然后,在Android中创建对该方法的JSON调用,并以正常方式解析结果。很多描述这种机制的票。HTH.

您将需要一个服务器端脚本来列出PHP中的文件,如下面的文件

将文件放在包含所有要查看的文件的目录中, 称为listfiles.php

<?php
 if ($handle = opendir('.')) {
   while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            //$thelist = $thelist.$file.'<br>';
            $thelist = $thelist.$file."\r\n";
          }
       }
  closedir($handle);
  }
 echo $thelist;
?>

然后在您的android java应用程序中,您将下载该文件,然后为您的处理构建一个文件名数组

String serverFile = "path on your server/listfiles.php";
String listOfFiles = DownloadText(serverFile);
String[] linesOfFiles = listOfFiles.split("<br>");
String serverFile=“服务器上的路径/listfiles.php”;
String listOfFiles=DownloadText(serverFile);
字符串[]linesOfFiles=listOfFiles.split(“
”);
然后,您就有了服务器上所有文件的字符串数组。我没有包含DownloadText函数的代码,但这是非常标准的,您可以很容易地找到它。它将通过HTTP下载任何文本文件


HTH

获取文件列表(以“-”分隔)的服务器脚本:


您的Web服务器应该首先允许它。第二,只需发送一个json,其中包含文件夹中的文件列表,如果您拥有服务器控件,则对其进行解析。什么是nameValuePairs?这篇文章来自2013年,当时HttpPost和HttpClient用于工作,但现在这些方法已过时。改用HttpUrlConnection。@标记您应该考虑提供DownloadText()方法。
<?php
    $path = realpath('your path\\your folder');
    foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $filename)
        {
            if (strpos($filename,'.mp3') !== false)
            $filenm=$filenm ."-". basename($filename);
        }
    echo $filenm    
?>
try {
            int timeout= 7000;
            HttpPost httppost= null;
            HttpClient httpclient = new DefaultHttpClient();
            httpclient.getParams().setParameter(HttpConnectionParams.CONNECTION_TIMEOUT, timeout);
            httppost = new HttpPost("http://yourserver/getlist.php"); 
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
        }
        catch(Exception e) {
            e.printStackTrace();
        }



        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";

            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }

            is.close();
            result=sb.toString();   
        }
        catch(Exception e){
            e.printStackTrace();
        }

        for (String getFile: result.split("-")){
            Log.d("abc","String is:" + getFile);
        }