只取“.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)[重复]的主要内容,如果未能解决你的问题,请参考以下文章