IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment récuperer la taille du fichier ?


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut Comment récuperer la taille du fichier ?
    Bonjour,
    Je suis en train de créer une application pour convertir un fichier powerpoint 2010 en wmv. Je réussi. La conversion s'est faite en derriere au moment je clic le bouton upload. La conversion dépend de la taille du fichier powerpoint. Je ne sais plus la duréé pour la conversion. Mais je veux récupérer la taille du fichier wmv et la durée du média une fois la conversion termine.
    Je ne sais pas comment faire? Est ce que quelqu'un peux m'aider ?

    Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileInfo f = new FileInfo(path_de_ton_fichier); 
    f.length;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    J'ai essayé ton code.
    Mais il dit que
    "Le fichier est introuvable"

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est probablement qu'il ne trouve pas le fichier...

    Il y a quoi dans ta variable qui contient le path ? Un path absolu, relatif ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par giraud vias Voir le message
    J'ai essayé ton code.
    Mais il dit que"Le fichier est introuvable"
    Donne lui le chemin exact vers ton fichier.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Je explique mon cas.
    Je transform un fichier powerpoint 2010 en wmv.
    La conversion depénd de la taille du fichier ppt et donc je ne sais pas quand il termine.
    Le problem ce que je veux recuperer la taille du fichier wmv une fois que la conversion s'est terminé.
    Je utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    long length = 0;
    	         while(length <= 0) {
    	         FileInfo source = new FileInfo("path du fichier");
    	         length = source.Length;
    	         }
    	         Response.Write(length);
                         // Ici je utilise la fonction pour recuperer la durée du média.
    Mais il donne le message erreur
    Le fichier est introuvable.
    Merci de votre aide.

  7. #7
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Hi

    Dans FileInfo il y a une propriete permettant de savoir si le fichier existe.

    Si le path est juste c'est que la conversion n est pas finit ; il n a peut pas encore copier le fichier de son repertoire temp a la destination.


  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    J'ai pas précisé mais ça semble logique de prendre la taille du fichier une fois la conversion finie et le fichier wmv créé !!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Oui tout à fait.
    Je ne vois la taille et la durée que la conversion termine.
    C'est pour ça j'essaie de récuperer la taille pour etre sûr que la conversion est terminé.
    Je utilise while loop et verifie la taille du fichier qu' la conversion s'est termine.
    Dans la loop je recois l'erreur que le fichier est introuvable.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Le fichier temporaire doit surement être nommé différemment du fichier final.

    Mais quand tu fais ta conversion, tu lance un programme externe ?
    Si oui, il devrai te retourné un code de sortie (souvent 0) et là tu saurai que la conversion est finie.
    Si non, si tu fais la conversion dans ton code C#, tu devrais aussi savoir quand la conversion est terminée....

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Pour la conversion je utilise un programe externe.
    Dans ce programe là,j'ouvre le fichier ppt puis je soumius une conversion simplement.
    Comment on fait ça pour retourner un '0' ou '1' ?

    Je utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public class PPTConverter {
    		private Microsoft.Office.Interop.PowerPoint.Presentation _ppPres;
    		private Microsoft.Office.Interop.PowerPoint.Application _ppApp;
     
     
    		public PPTConverter() {
    		if (_ppApp == null)
    			_ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
    			_ppApp.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
    		}
     
     
    		/// <summary>
    		/// Ouvre le fichier de présentation
    		/// </summary>
    		/// <param name="FileName"></param>
    		public void Open(string FileName) {
     
    		if(_ppApp != null){
    		_ppPres = _ppApp.Presentations.Open(FileName,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoFalse);
     
    		}
    		}
     
    		/// <summary>
    		/// Libère toutes les ressources liées à cette objet
    		/// </summary>
    		public void Close() {
     
    			if(_ppApp != null){
    				if(_ppPres != null){
    					_ppPres.Close();
    					_ppPres = null;
    				}
    			}	
    		}
     
    		/// <summary>
    		/// Sauvegarde la présentation sous forme WMV
    		/// </summary>
    		/// <param name="SavedFileName">Chemin d'accès à la sauvegarde de la presentation</param>
    		public void SaveToWMV(string SavedFileName) {
     
    			bool UseTimingsAndNarrations = false;
    			int DefaultSlideDuration = 3;
    			int VertResolution = 1280;
    			int FramesPerSecond = 60;
    			int Quality = 100;
    			_ppPres.CreateVideo(SavedFileName,UseTimingsAndNarrations,DefaultSlideDuration,VertResolution,FramesPerSecond,Quality);
     
    		}

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Tu créé un processus qui va appeler le programme qui fait la conversion en utilisant Process de System.Diagnostic.
    Tu as WaitForExit qui permettra de savoir quand la conversion est terminée..
    http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx

    Sinon, solution (very) quick & dirty :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(true)
    {
      try{
        // lire la taille du fichier final (code donné au dessus)
        // si fichier existe pas il catch l'exception et reboucle
        // quand le fichier sera converti, il existe, tu récupèrera la taille,
        // puis tu quitte la boucle while avec un break
     }
    catch{}
    }

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Je comprends tous ce que tu dit.
    Mais mon le program que j'ai creé retourne rien.
    comment je peux savoir il est "true" ou "false" ?
    J'appelle simplement cette method pour la conversion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void SaveToWMV(string SavedFileName) {
     
    			bool UseTimingsAndNarrations = false;
    			int DefaultSlideDuration = 3;
    			int VertResolution = 1280;
    			int FramesPerSecond = 60;
    			int Quality = 100;
    			_ppPres.CreateVideo(SavedFileName,UseTimingsAndNarrations,DefaultSlideDuration,VertResolution,FramesPerSecond,Quality);
     
    		}
    Dans la application j'ai ecrit comme suivant:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ppt = new Ivideo.Media.PPTConverter();
    ppt.Open(pathUpload + fileName);
    ppt.SaveToWMV(pathUpload + fileName + @".wmv");
    ppt.Close();
    //Ici je veux faire le code pour recuperer la taille puis la durée.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void SaveToWMV(string SavedFileName)
    Je mettrai un type de retour boolean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public bool SaveToWMV(string SavedFileName)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ppt = new Ivideo.Media.PPTConverter();
    ppt.Open(pathUpload + fileName);
    if(ppt.SaveToWMV(pathUpload + fileName + @".wmv"))
    {
      // recup la taille
      ppt.Close();
    }

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    J'ai fait comme t'a dit.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    long length = 0;							if(ppt.SaveToWMV(pathUpload + fileName + @".wmv"))
    		{								    FileInfo source = new FileInfo(pathUpload + fileName + @".wmv");
                                  length = source.Length;
    		    Response.Write(length);
                                  //Ici je veux mettre un loop pour verifier la taille jusq'il retourne la taille exacte.
    		    ppt.Close();
    		}
    Il retourne la taille "0" parce que la conversion n'est pas terminé.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    c'est quoi ton _ppPres.CreateVideo() ? S'il lance un thread pour faire la conversion il faut que tu recupere la valeur de retour de ce thread, savoir quand il a terminé.

    PS: utilise les balises CODE pour ton code

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _ppPres.CreateVideo(SavedFileName,UseTimingsAndNarrations,DefaultSlideDuration,VertResolution,FramesPerSecond,Quality);
    est un propriete de la presentation de powerpoint.
    On donne le nom du fichier que nous allons creér.
    Si on appelle cette method il lance la conversion et il creé le fichier wmv tout de suite mais le fichier est vide toujours (taille:0) jusqu il termine la conversion et il affiche la taille réelle(12240ko).
    Donc si tu me m'aider comment on faire un boucle pour que je verifie sa taille jusqu'il retourne quelque chose.
    C'est la je suis bloqué.

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try
    {
          FileInfo f = new FileInfo("test.wmv");
          while (f.Length == 0)
             f.Refresh();
     
          long len = f.Length; // in bytes !
    }
    catch { }

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Rien que change.
    Je utilisé le code comme t'a montré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    	try								{								         FileInfo source = new FileInfo(pathUpload + fileName + @".wmv");
                          while(source.Length == 0)
    	         {
    		 source.Refresh();
    		 long length = source.Length;
    	         }
    									}
    	catch(Exception ex)
    	{								System.Windows.Forms.MessageBox.Show("Could not found");
    									}

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Si tu ne connais pas la différence entre ton code et le mien je ne peux plus t'aider.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [C#] Comment connaitre la taille d'un fichier.
    Par PascalCmoa dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/02/2018, 08h54
  2. Comment récuperer la taille en pixel d'un tableau (suite)
    Par Krishna dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 13/05/2008, 11h32
  3. Comment savoir la taille dun fichier sur internet
    Par Nik_Meilleur dans le forum C++Builder
    Réponses: 6
    Dernier message: 13/01/2007, 00h21
  4. [JTable] Comment récuperer les données d'un fichier texte ?
    Par Makunouchi dans le forum Composants
    Réponses: 2
    Dernier message: 03/05/2005, 16h37
  5. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo