【问题标题】:Take Only ".jpg" ( Android ) [duplicate]只取“.jpg”(Android)[重复]
【发布时间】:2017-05-24 22:28:25
【问题描述】:

我希望我的应用程序只上传.jpg 而不是其他具有不同extensions 的文件。

你能告诉我我应该在我的代码中添加什么吗?

这是我的代码:

    public void jetzt() {

      FTPClient ftpClient = new FTPClient();
      try {
          ftpClient.connect(" FTP SERVER IP");

          ftpClient.setSoTimeout(10000);
          ftpClient.enterLocalPassiveMode();
          if (ftpClient.login(" LOGIN ", " PASSWORD ")) {
              ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
              ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);

              ftpClient.changeWorkingDirectory("/htdocs");

              final String serial = getManufacturerSerialNumber();
              ftpClient.makeDirectory(serial);
              ftpClient.changeWorkingDirectory(serial);


              final File folder = new File("mnt/sdcard/YmmyCandy");

              for (final File fileEntry : folder.listFiles()) {
                  try {
                      FileInputStream fs = new FileInputStream(fileEntry);
                      if (!fileEntry.isDirectory()) {
                          String fileName = fileEntry.getName();
                          ftpClient.storeFile(fileName, fs);
                          fs.close();
                          Log.i(TAG, "sent");
                      }

                  } catch (Exception e) {
                      Log.i(TAG, "error uploading");
                  }
              }
          }
      } catch (IOException e) {
          e.printStackTrace();
      }
  }

【问题讨论】:

  • 请在发布问题之前进行一些研究。这个重复是在 10 秒内找到的,这应该可以解决您的问题
  • 感谢您的回答。

标签: java android eclipse ftp apk


【解决方案1】:

好吧,既然你有文件名,你可以检查它是否以 .jpg(或 .jpeg!)结尾:

    String filenameArray[] = fileEntry.getName().split("\\.");
    String extension = filenameArray[filenameArray.length-1];
    if (extension.equals("jpg") || extensions.equals("jpeg")) {...}

【讨论】:

  • 这是工作!谢谢古丁 :)
【解决方案2】:

这里:

for (final File fileEntry : folder.listFiles()) {
    ...
    String fileName = fileEntry.getName();
    ftpClient.storeFile(fileName, fs);

您已经拥有“手头”的文件名;但您无需像if (fileName.endsWith(".jpeg")) 那样编写简单的检查,只需上传所有文件!

当然,事情需要一些改进。如果您确切知道所有文件都以 .jpeg 结尾,那么它可以工作,但也许 jpg、JPG 等也应该可以工作。

如果您想要一个真正“完整”的解决方案,则必须检查每个文件的 MIME 类型。

【讨论】:

  • 感谢鬼猫的回答
  • 不客气:但仅作记录:您接受的答案过于复杂。拆分文件名没有意义;你可以去检查那个字符串的结尾!顺便说一句:您可能希望将整个检查放入它的 自己的 方法中,例如 boolean isJpeg(String filneName) - 因为这将使您更容易更改您正在执行的确切检查类型。
猜你喜欢
  • 1970-01-01
  • 2019-01-19
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多