J'écris une application qui fonctionne avec des images satellites et mon patron m'a demandé d'examiner certaines applications commerciales et de voir comment elles se comportaient. J'ai constaté un comportement étrange et, comme je le recherchais, je l'ai également trouvé dans d'autres applications standard.
Ces programmes écrivent d’abord dans le dossier temporaire, puis copient-le dans la destination voulue.
Exemple: 7zip commence par extraire dans le dossier temporaire, puis copie les données extraites à l'emplacement où vous lui avez demandé d'extraire les données.
Je vois plusieurs problèmes avec cette approche:
Le dossier temporaire ne dispose peut-être pas de suffisamment d'espace, tandis que l'emplacement prévu peut en contenir autant.
S'il s'agit d'un fichier volumineux, l'opération de copie peut prendre un temps non négligeable.
J'y ai beaucoup réfléchi, mais je ne voyais aucun avantage positif à le faire. Est-ce que je manque quelque chose ou y a-t-il un réel avantage à le faire?
la source
Réponses:
Quelques raisons auxquelles je peux penser:
TL; DR - cela revient essentiellement à l’attricité, c’est-à-dire que vous voulez faire en sorte que (à l’emplacement final) le fichier soit complet ou absent du tout à un moment donné.
la source
Cela semble être un problème dans Windows, plus spécifiquement lié à la gestion du glisser-déposer.
Les développeurs du client WINSCP ont développé leur propre extension shell, qui annule ce comportement de glisser-déposer et permet de déposer immédiatement le fichier dans le bon dossier. Ils expliquent le tour de force dans leur documentation et, plus intéressant encore, quel est le problème et comment ils l'ont résolu.
Voici la partie intéressante:
De plus, spécifiquement pour 7Zip: l'utilisateur ray023 répond à cette question dans le Q & A de la pile de superutilisateurs: https://superuser.com/a/422463
Fondamentalement, si au lieu de glisser-déposer votre fichier, vous utilisez la méthode "extraire ici" disponible dans 7-ZIP et Winrar, les fichiers sont directement extraits vers le bon répertoire.
la source
Si vous devez effectuer n'importe quel type de traitement de données dans le fichier (décoder / convertir / etc.), il est préférable d'utiliser un fichier temporaire. Une fois terminé, transférez le résultat à la destination finale uniquement.
Avantages:
Je ne vois pas les avantages réels d’écrire directement à la destination lors du traitement des données.
la source