问题 为什么drawable文件夹中的文件名不能包含特殊字符或以大写字母开头?


这些规则是否有意义?


1317
2017-07-20 07:09


起源



答案:


文件夹内的每个文件都被翻译成R.java类中的java字段名:

drawable\icon.png -> R.drawable.icon

因此,不在文件名中使用特殊字符的原因,因为它们不能在Java名称中使用。

至于大写字母,我想这是为了避免Windows与Linux环境中的一个小问题。那是因为Linux认为 Icon.png 和 icon.png 是不同的文件,Windows认为 Icon.png 和 icon.png 是同一个文件。因此,使用Linux的任何人都可以创建在Windows上无法编译的应用程序。


14
2017-07-20 07:15



我认为这不是真的。 Java在内部以UTF-16存储字符串。如果您愿意,甚至可以用普通话编写Java应用程序代码。 - Matthias
字符串和UTF-16与文件名中的文件名和特殊符号有什么关系? - inazaruk
我指的是“因此不在文件名中使用特殊字符的原因,因为它们不能在Java名称中使用。”声明。这根本不是真的。您可以在Java标识符中使用各种特殊字符。 - Matthias
是的,我刚刚意识到我的评论没有任何意义。我实际上是指Java标识符,而不是存储为String类型的值。 - Matthias


答案:


文件夹内的每个文件都被翻译成R.java类中的java字段名:

drawable\icon.png -> R.drawable.icon

因此,不在文件名中使用特殊字符的原因,因为它们不能在Java名称中使用。

至于大写字母,我想这是为了避免Windows与Linux环境中的一个小问题。那是因为Linux认为 Icon.png 和 icon.png 是不同的文件,Windows认为 Icon.png 和 icon.png 是同一个文件。因此,使用Linux的任何人都可以创建在Windows上无法编译的应用程序。


14
2017-07-20 07:15



我认为这不是真的。 Java在内部以UTF-16存储字符串。如果您愿意,甚至可以用普通话编写Java应用程序代码。 - Matthias
字符串和UTF-16与文件名中的文件名和特殊符号有什么关系? - inazaruk
我指的是“因此不在文件名中使用特殊字符的原因,因为它们不能在Java名称中使用。”声明。这根本不是真的。您可以在Java标识符中使用各种特殊字符。 - Matthias
是的,我刚刚意识到我的评论没有任何意义。我实际上是指Java标识符,而不是存储为String类型的值。 - Matthias


你可以看到一些关于这个的讨论, 这里


0
2017-07-20 07:19