Ответ Swift 3 на ответ Duncan C -
let myArray = ["Step 6", "Step 12", "Step 10"]
let sortedArray = myArray.sorted {
$0.compare($1, options: .numeric) == .orderedAscending
}
print(sortedArray) // ["Step 6", "Step 10", "Step 12"]
Или, если вы хотите отсортировать массив на месте:
var myArray = ["Step 6", "Step 12", "Step 10"]
myArray.sort {
$0.compare($1, options: .numeric) == .orderedAscending
}
print(myArray) // ["Step 6", "Step 10", "Step 12"]
Вам необходимо добавить '/' после имени режиссера
<exclude name="WEB-INF/" />
. У меня работает следующий подход:
<exclude name="**/dir_name_to_exclude/**" />
Вот альтернатива, вместо добавления файла incomplete.flag
к каждому каталогу, который вы хотите исключить, сгенерируйте файл, содержащий список всех каталогов, которые вы хотите исключить, и затем используйте атрибут excludesfile
. Примерно так:
<fileset dir="${basedir}" excludesfile="FileWithExcludedDirs.properties">
<include name="locale/"/>
<exclude name="locale/*/incomplete.flag">
</fileset>
Надеюсь, это поможет.
Это возможно при использовании шаблона «**» следующим образом.
<exclude name="maindir/**/incomplete.flag"/>
вышеупомянутое исключение полностью исключит все каталоги, которые содержат файл incomplete.flag.
это работает для меня с целью jar:
<jar jarfile="${server.jar}" basedir="${classes.dir}" excludes="**/client/">
<manifest>
<attribute name="Main-Class" value="${mainServer.class}" />
</manifest>
</jar>
этот код включает все файлы в "classes.dir", но исключает каталог "client" из jar.
Я думаю, один из способов - сначала проверить, существует ли ваш файл и существует ли он для исключения папки из копии:
<target name="excludeLocales">
<property name="de-DE.file" value="${basedir}/locale/de-DE/incompelte.flag"/>
<available property="de-DE.file.exists" file="${de-DE.file}" />
<copy todir="C:/temp/">
<fileset dir="${basedir}/locale">
<exclude name="de-DE/**" if="${de-DE.file.exists}"/>
<include name="xy/**"/>
</fileset>
</copy>
</target>
Это должно работать и для других языков.
работает для меня:
<target name="build2-jar" depends="compile" >
<jar destfile="./myJjar.jar">
<fileset dir="./WebContent/WEB-INF/lib" includes="hibernate*.jar,mysql*.jar" />
<fileset dir="./WebContent/WEB-INF/classes" excludes="**/controlador/*.class,**/form/*.class,**/orm/*.class,**/reporting/*.class,**/org/w3/xmldsig/*.class"/>
</jar>
В документации по муравьям есть пример такого типа проблемы. Он использует селекторы (упомянутые выше) и картографы. См. Последний пример в http://ant.apache.org/manual/Types/dirset.html :
<dirset id="dirset" dir="${workingdir}">
<present targetdir="${workingdir}">
<mapper type="glob" from="*" to="*/${markerfile}" />
</present>
</dirset>
. Выбирает все каталоги в разделе ${workingdir}
, которые содержат ${markerfile}
.
Ответ, предоставленный пользователем mgaert работает для меня. Я думаю, что это должно быть помечено как правильный ответ.
Он работает также со сложными селекторами, как в этом примере:
<!--
selects only direct subdirectories of ${targetdir} if they have a
sub-subdirectory named either sub1 or sub2
-->
<dirset dir="${targetdir}" >
<and>
<depth max="0"/>
<or>
<present targetdir="${targetdir}">
<globmapper from="*" to="*/sub1" />
</present>
<present targetdir="${targetdir}">
<globmapper from="*" to="*/sub2" />
</present>
</or>
</and>
</dirset>
Таким образом, имея структуру каталогов, подобную этой:
targetdir
├── bar
│ └── sub3
├── baz
│ └── sub1
├── foo
│ └── sub2
├── phoo
│ ├── sub1
│ └── sub2
└── qux
└── xyzzy
└── sub1
вышеупомянутый dirset будет содержать только
baz foo phoo(
bar
не совпадает из-за sub3, а xyzzy
не совпадает, потому что это не прямой подкаталог targetdir
)