jcromprend pas trop à quoi sert flush en fait, et ni en quoi Filestream.flush apporte de plus...
"efface toutes les mémoires tampons pour ce flux et provoque l'écriture de toutes les données se trouvant dans des mémoires tampons sur l'appareil sous-jacent."
"Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon."
il parle de quel flux ? si il efface ce flux ça veux dire qu'il copies des données qui ont rien à voir ? chui un peu perdu avec leur explications
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 23 janv. 2018 à 20:24
Bonjour !
Déjà la méthode Flush est très rarement utilisée !
Lorsque le système d'exploitation charge ou envoie un fichier il crée un flux de données ( un Stream ) pour pouvoir recevoir et envoyer ces données . Il faut voir ce flux de données comme une canalisation d'eau chez toi : tu veux 10 litres d'eau ta canalisation va débiter pendant 5 minutes . tu en veux 100 litres ce sera pendant 50 minutes ( d'où le nom de flux de données ) !
En informatique le flux de données est géré par paquets : un fichier de 1 Ko ne nécessitera qu'un paquet alors qu'un fichier de 20 Go en nécessitera plusieurs !
Quand tu télécharges un fichier par le Net par exemple tu télécharges ce fichier par paquets . Chaque paquet est mis dans une mémoire tampon et le système va chercher les morceaux de fichier dans cette mémoire tampon et reconstitue le fichier téléchargé .!
Flush permet de vider la mémoire tampon d'un flux de Données ( le fameux Stream ou FileStream ) : tout le contenu de la mémoire tampon est d'abord copié dans le fichier destination que tu télécharges !
Maintenant l'objet Stream et l'objet FileStream sont quasiment équivalents .
ok , donc une fois que toutes les données d'un fichier par exemple, qui à été copiés dans un fichier tout la place qui prenait dans la mémoires tampon est supprimer ? c'est un peu comme dispose() pour la ram
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Utilisateur anonyme
23 janv. 2018 à 21:28
bonsoir !
Imagines que tu viens de télécharger un fichier . Tu veux ensuite en télécharger un autre sans fermer le flux de données . Tu fais un Flush() sur le Stream pour vider la mémoire tampon du premier fichier téléchargé dans le fichier destination et tu réaffectes le flux de données au nouveau fichier : tu commences ensuite à télécharger ton second fichier
On ne supprime pas la mémoire tampon : on la vide en stockant les données dans le fichier destination
Utilisateur anonyme
>
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023 Modifié le 23 janv. 2018 à 21:56
donc quand tu as télécharger un fichier il est dans la mémoire tampon et quand tu veux le mettre dans un dossier ou fichier tu fais Flush() pour vider chaque paquets dans le tampon dans un dossier ou fichier de destination ?
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Utilisateur anonyme
Modifié le 24 janv. 2018 à 00:47
Le Flush() se fait généralement tout seul ! un Close() sur le Stream l'appelle en interne
Mais dans certains cas bien spéciaux il faut le faire ( exemple : afficher la progression de téléchargement d'un fichier entre les différents paquets. tu fais un Flush() de ton Stream et tu mets à jour ta barre de progression )
Personnellement je n'ai jamais utilisé cette méthode !
Bonjour , si un programme a créer (ou plutôt l'OS) des mémoires tampon et que ce programme vient de se fermer es-que un autre programme pourrait utiliser une parties ou plus, suivant ses besoins ces Buffers ? et combien fait la taille maximum d'un Buffer? merci.
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023624 30 janv. 2018 à 07:13
Question 1 non
Question 2, tu l'as déjà posée et nous n'y avons pas répondu, c'est qu'on a pas la réponse.
Modifié le 23 janv. 2018 à 19:59
"efface toutes les mémoires tampons pour ce flux et provoque l'écriture de toutes les données se trouvant dans des mémoires tampons sur l'appareil sous-jacent."
"Efface les mémoires tampons pour ce flux et provoque l'écriture dans le fichier des données mises en mémoire tampon."
il parle de quel flux ? si il efface ce flux ça veux dire qu'il copies des données qui ont rien à voir ? chui un peu perdu avec leur explications
https://msdn.microsoft.com/fr-fr/library/system.io.stream.flush(v=vs.110).aspx
https://msdn.microsoft.com/fr-fr/library/2bw4h516(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2