Android中通过Java生成的文件路径在Android中创建的File对象上的file.getName()会产生奇怪的结果

用户名

我遇到了一个以前没有或没有注意到的程序的巨大问题。我必须在3.5个小时内提交我的作品,因此希望在此之前能帮助我的人能看到这一点。

我有一个Java程序,用户可以使用该程序选择文件,然后将这些文件的路径传递给Android应用程序。在Android应用程序中,我使用路径创建一个新的File对象,然后稍后调用fileObject.getName()

根据Java程序是在Ubuntu还是Windows中运行,这会产生不同的结果。如果从Ubuntu运行,则Android应用程序成功提取文件名,但是,如果从Windows运行,则Android应用程序提取完整路径。

我最初将发送到Android的路径称为Canonical路径,此后将其更改为Absolute path,因为我不确定这是否是导致问题的原因。这还没有解决问题。这是使用Windows路径在Android中创建File对象的结果吗?我以为没关系,但我想我错了。

如果有人在接下来的几个小时内能帮助我,您就可以保存我的学位,因为这是一个重要的项目,而且我已经提交了报告,但没有提及我现在遇到的这个问题,因此我什至无法解释我只需要修复它就可以了。

为了澄清起见,如果我在Windows中选择一个具有路径的文件 C:\Users\Username\Pictures\picture.jpeg

然后将其传递给Android,该getName()方法返回的是方法的确切路径

而如果我使用路径从ubuntu进行操作/home/username/Pictures/picture.jpeg并将其传递给Android,则getName()返回的picture.jpeg正是我所需要的。

非常感谢。

安德鲁·菲尔登(Andrew Fielden)

如果只需要文件名,则可以手动提取路径字符串的最后一部分。像这样-

File f;
int index = f.getName().lastIndexOf('\');
String fileName = f.getName().substring(index+1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章