Как извлечь имя пакета из пути к файлу с помощью Apache Ant?

Я хочу, чтобы преобразовать путь к файлу в Android-пакет имя, как показано ниже путь к файлу:

F: \ PartnerFolders \ Modify\ SRC \ COM \ строитель \ компоненты \AlwaysFocusedText.java

я хочу преобразовать

\ Ком \ строитель \ Components \

в

com.builder.components

и переместить этот файл в преобразованный пакет

Заранее спасибо.

1 ответ

Вы пометили ant-contrib, так что вы можете просто использовать 2 propertyregex, если, например, ваш путь к файлу определен в свойстве:

<property name="file.path" value="F:\PartnerFolders\modify\src\com\builder\components\AlwaysFocusedText.java"/> 

Затем вы можете получить желаемое имя пакета с помощью следующего кода:

<propertyregex property="stripped.file.path" input="${file.path}" regexp=".*\\src\\(.*)\\.*\.java" select="\1"/>
<propertyregex property="package" input="${stripped.file.path}" regexp="\\" replace="." global="true"/>

Первое свойство regex удалит строку: \ com \ builder \ components \ и сохранит ее в свойстве stripped.file.path. select="\1" выбирает первую группу, то есть то, что содержится в первых скобках в регулярном выражении. Второе свойство regex заменит \ на . и сохраните его в пакете собственности.

Другие вопросы по тегам