Existe-t-il un moyen relativement simple dans nant, sans écrire de tâche personnalisée, d'obtenir le nom du dossier le plus récent dans un répertoire donné? La récursivité n'est pas nécessaire. J'ai essayé de le faire avec directory :: get-creation-time et une boucle foreach et si les déclarations, yada yada. C'est trop complexe et je suis sur le point de créer une tâche personnalisée à la place. Cependant, je soupçonne qu'il existe une façon plus simple de le faire via les fonctionnalités nant existantes.Nant - Obtenir le dossier le plus récent
4
A
Répondre
6
Je crois que vous avez raison de dire que cela dans un pur nant la mode pourrait poser d'être désordonné, en particulier la façon dont les propriétés fonctionnent dans nant. Si vous ne voulez pas écrire une tâche personnalisée, vous pouvez toujours utiliser le script task. Par exemple:
<?xml version="1.0"?>
<project name="testing" basedir=".">
<script language="C#" prefix="test" >
<code>
<![CDATA[
[Function("find-newest-dir")]
public static string FindNewestDir(string startDir) {
string theNewestDir = string.Empty;
DateTime theCreateTime = new DateTime();
DateTime theLastCreateTime = new DateTime();
string[] theDirs = Directory.GetDirectories(startDir);
for (int theCurrentIdx = 0; theCurrentIdx < theDirs.Length; ++theCurrentIdx)
{
if (theCurrentIdx != 0)
{
DateTime theCurrentDirCreateTime = Directory.GetCreationTime(theDirs[ theCurrentIdx ]);
if (theCurrentDirCreateTime >= theCreateTime)
{
theNewestDir = theDirs[ theCurrentIdx ];
theCreateTime = theCurrentDirCreateTime;
}
}
else
{
theNewestDir = theDirs[ theCurrentIdx ];
theCreateTime = Directory.GetCreationTime(theDirs[ theCurrentIdx ]);
}
}
return theNewestDir;
}
]]>
</code>
</script>
<property name="dir" value="" overwrite="false"/>
<echo message="The newest directory is: ${test::find-newest-dir(dir)}"/>
</project>
Avec ceci, on devrait pouvoir appeler la fonction pour obtenir le nouveau répertoire. L'implémentation de la fonction réelle pourrait être changée pour être quelque chose (optimisé un peu plus ou peu importe), mais j'ai inclus un rapide pour référence sur la façon d'utiliser la tâche de script . Il produit une sortie comme celle-ci:
nant -D:dir=c:\ NAnt 0.85 (Build 0.85.2478.0; release; 10/14/2006) Copyright (C) 2001-2006 Gerry Shaw http://nant.sourceforge.net Buildfile: file:///C:/tmp/NAnt.build Target framework: Microsoft .NET Framework 2.0 [script] Scanning assembly "jdrgmbuy" for extensions. [echo] The newest directory is: C:\tmp BUILD SUCCEEDED Total time: 0.3 seconds.
Questions connexes
- 1. SQL Query Advice - Le plus récent article
- 2. Python FTP Fichier le plus récent
- 3. Java - obtient le fichier le plus récent dans un répertoire?
- 4. KornShell script pour obtenir le fichier le plus récent pour un jour donné
- 5. Comment puis-je obtenir le fichier le plus récent à partir d'un serveur FTP?
- 6. Sélectionnez le plus récent enregistrement correspondant à session_id
- 7. Implémentation du commentaire le plus récent - SQL Server
- 8. enregistrement le plus récent dans une jointure gauche
- 9. Commander des publications Wordpress par le plus récent commentaire
- 10. Comment obtenir le plus récent article unique de beaucoup avec des associations ActiveRecord?
- 11. Assurez-vous que le résultat de la requête SQL le plus récent est utilisé dans autosuggest
- 12. Fichier batch pour rechercher une chaîne dans le fichier le plus récent
- 13. Obtenir le chemin d'accès réel du dossier
- 14. Fichier batch pour l'ouverture du journal anti-malware de Malwarebytes le plus récent
- 15. iPhone: Obtenir le chemin du fichier qui est dans le sous-dossier du dossier de ressources
- 16. Lequel est le plus rapide réécriture ou URL de dossier?
- 17. J'ai besoin du disque le plus récent dans une jointure (PostgresSQL)
- 18. Avec Adobe Flex SDK 3.0 (le plus récent), pouvez-vous créer des «graphiques»?
- 19. SQL Server - Sélection disque le plus récent pour générer une liste des changements
- 20. Comment sélectionner l'ensemble le plus récent des enregistrements datés d'une table mysql
- 21. problème lors de la construction d'une requête mysql (le plus récent par item)
- 22. Django ORM: Obtenez le plus récent objet avant que rencontre une certaine condition
- 23. Perl: Obtenir l'état .htaccess sur le dossier en cours
- 24. Le moyen le plus efficace pour obtenir des listes?
- 25. obtenir le résultat le plus proche dans IFNULL
- 26. algorithme le plus rapide pour obtenir le changement moyen
- 27. Mysql requête pour obtenir 2 plus récent pour un numéro d'article donné
- 28. Comment obtenir le dossier temporaire pour l'utilisateur en cours
- 29. Comment obtenir le temps de création du dossier (en millisecondes)?
- 30. Comment obtenir que NAnt utilise le nouveau compilateur VB9 pour les applications .NET 2.0?