Bonjour les amis ,
Je travaille sur un script afin d'alléger mes applis android (je fais des roms pour Android )
Les applis contiennent des dossiers avec plusieurs tailles de png qui sont pour tous les mobiles (full hd , HD , ecran standard etc) mais moi comme je suis en XHDPI j'aimerai garder que les png xhdpi et supprimer tous les doublons qui sont placés dans les autres dossiers (même nom de png mais pas la même taille)
j'ai fait mon script mais il est lent, très lent même, surtout à partir de plus 100 fichiers du type .png et .jpg.
je vous montre un bout du code , j'utilise la fonction "search" bien que j'en suis sûr que "filelistarray" marcherait et aussi je suis sûr que ce serait plus rapide.
En gros c'est du style de Kdiff si vous connaissez sauf que je veux qu'il me supprime tous mes fichiers inutile.
Le But :
étape 1:Lister tous les répertoires contenant des png/jpg
étape 2:Choisir son répertoire par défaut car ce répertoire doit évidement rester intact par exemple:
drawable-xhdpi
étape 3:Ensuite le logiciel doit scanner TOUS les PNG et JPG dans ce dossier (étape2) puis les lister ou les placer en variables .
étape 4:le logiciel doit scanner tous les dossiers de l'étape 1 puis supprimer tous les png/jpg qui possèdent les même noms que dans le dossier par défaut (les tailles sont en principe différente donc se baser sur le nom est une bonne base )
étape 5: Good

on passe au second dossier par défaut mais ça je saurai le faire ^^
En gros j'ai besoin d'aide pour le raccourcir car j'ai entré 90 entrées de possibilité de dossier et je ne veux qu'il exectue dans tous les dossier commençant par:"drawable-xxxxxxxx" vu que le nom est aléatoire lol donc voila pourquoi j'ai mis 90 entrées de dossier lol
Voici mon bout de code .
► Afficher le texte
Code : Tout sélectionner
#include <File.au3>
#include <Array.au3>
$source = FileSelectFolder("Choose a folder.", "C:\_ApkTool_Team-ReDroiD\projects\")
$dirHDPI = ($source & "\res\drawable-hdpi\")
$dirMDPI = ($source & "\res\drawable-mdpi\")
$dirXDPI = ($source & "\res\drawable-xdpi\")
$dirxxhdpi = ($source & "\res\drawable-xxhdpi\")
$dirNODPI = ($source & "\res\drawable-nodpi\")
$dir_MIPMAP_HDPI = ($source & "\res\drawable-hdpi\")
$dir_MIPMAP_MDPI = ($source & "\res\drawable-mdpi\")
$dir_MIPMAP_XDPI = ($source & "\res\drawable-xdpi\")
$dir_MIPMAP_xxhdpi = ($source & "\res\drawable-xxhdpi\")
$dir_MIPMAP_NODPI = ($source & "\res\drawable-nodpi\")
$dir1 = ($source & "\res\drawable")
$dir3 = ($source & "\res\drawable-ldpi\")
$dir5 = ($source & "\res\drawable-tvdpi\")
$dir7 = ($source & "\res\drawable-large-hdpi-v11\")
$dir8 = ($source & "\res\drawable-large-ldpi-v11\")
$dir9 = ($source & "\res\drawable-large-mdpi-v11\")
$dir10 = ($source & "\res\drawable-large-tvdpi-v11\")
$dir11 = ($source & "\res\drawable-large-xxhdpi-v11\")
$dir12 = ($source & "\res\drawable-xlarge-hdpi-v11\")
$dir13 = ($source & "\res\drawable-xlarge-ldpi-v11\")
$dir14 = ($source & "\res\drawable-xlarge-mdpi-v11\")
$dir15 = ($source & "\res\drawable-xlarge-tvdpi-v11\")
$dir16 = ($source & "\res\drawable-xlarge-xxhdpi-v11\")
$dir17 = ($source & "\res\drawable-large-hdpi-v13\")
$dir18 = ($source & "\res\drawable-large-ldpi-v13\")
$dir19 = ($source & "\res\drawable-large-mdpi-v13\")
$dir20 = ($source & "\res\drawable-large-tvdpi-v13\")
$dir21 = ($source & "\res\drawable-large-mdpi-v13\")
$dir22 = ($source & "\res\drawable-large-xxhdpi-v13\")
; etc jusqu'a plus de $dir90 ...
Local $search = FileFindFirstFile($source & "\res\drawable-xhdpi\" & "*.png*")
If $search = -1 Then
EndIf
While 1
Local $file = FileFindNextFile($search)
If @error Then ExitLoop
FileRecycle($dir1 & $file)
FileRecycle($dirHDPI & $file)
FileRecycle($dir3 & $file)
FileRecycle($dirMDPI & $file)
FileRecycle($dir5 & $file)
FileRecycle($dirxxhdpi & $file)
FileRecycle($dirNODPI & $file)
FileRecycle($dir7 & $file)
FileRecycle($dir8 & $file)
FileRecycle($dir9 & $file)
FileRecycle($dir10 & $file)
FileRecycle($dir11 & $file)
;;;; j'ai retiré le reste du code car sinon ca va faire trop de lignes :/
WEnd
;On passe au second dossier à alléger
Local $search = FileFindFirstFile($source & "\res\drawable-hhdpi\" & "*.png*")
If $search = -1 Then
EndIf
While 1
Local $file = FileFindNextFile($search)
If @error Then ExitLoop
FileRecycle($dir1 & $file)
:FileRecycle($dirHDPI & $file)
FileRecycle($dir3 & $file)
FileRecycle($dirMDPI & $file)
FileRecycle($dir5 & $file)
FileRecycle($dirxxhdpi & $file)
FileRecycle($dirNODPI & $file)
FileRecycle($dir7 & $file)
FileRecycle($dir8 & $file)
FileRecycle($dir9 & $file)
FileRecycle($dir10 & $file)
FileRecycle($dir11 & $file)
;;;; j'ai retiré le reste du code car sinon ca va faire trop de lignes :/
WEnd
;Suppression des dossiers vide :
$size = DirGetSize($dirMIPMPAP_2)
If $size = 0 Then DirRemove($dirMIPMPAP_2)
$size = DirGetSize($dirMIPMPAP_3)
If $size = 0 Then DirRemove($dirMIPMPAP_3)
$size = DirGetSize($dirMIPMPAP_5)
If $size = 0 Then DirRemove($dirMIPMPAP_5)
$size = DirGetSize($dirMIPMPAP_5)
If $size = 0 Then DirRemove($dirMIPMPAP_5)
$size = DirGetSize($dirMIPMPAP_7)
If $size = 0 Then DirRemove($dirMIPMPAP_7)
$size = DirGetSize($dirMIPMPAP_8)
If $size = 0 Then DirRemove($dirMIPMPAP_8)
$size = DirGetSize($dirMIPMPAP_9)
If $size = 0 Then DirRemove($dirMIPMPAP_9)
$size = DirGetSize($dirMIPMPAP_10)
If $size = 0 Then DirRemove($dirMIPMPAP_10)
;;;; j'ai retiré le reste du code car sinon ca va faire trop de lignes :/
;360 XHDPI
Local $search = FileFindFirstFile($source & "\res\drawable-sw360dp-xhdpi\" & "*.png*")
If $search = -1 Then
EndIf
While 1
Local $file = FileFindNextFile($search)
If @error Then ExitLoop
FileRecycle($dir1 & $file)
FileRecycle($dirHDPI & $file)
FileRecycle($dir3 & $file)
FileRecycle($dirMDPI & $file)
FileRecycle($dir5 & $file)
FileRecycle($dirxxhdpi & $file)
FileRecycle($dirNODPI & $file)
FileRecycle($dir7 & $file)
FileRecycle($dir8 & $file)
FileRecycle($dir9 & $file)
;etc etc etc
WEnd