只取“.jpg”(Android)[重复]

Posted

技术标签:

【中文标题】只取“.jpg”(Android)[重复]【英文标题】:Take Only ".jpg" ( Android ) [duplicate] 【发布时间】: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 秒内找到的,这应该可以解决您的问题 感谢您的回答。 【参考方案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) - 因为这将使您更容易更改您正在执行的确切检查类型。

以上是关于只取“.jpg”(Android)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

sql根据某一个字段重复只取第一条数据

Pandas Groupby 只取前 N 个组 [重复]

Oracle数据重复,只取一条

数据库sql,重复字段只取其中一行

for循环中的lambda只取最后一个值[重复]

for循环中的lambda只取最后一个值[重复]