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

Windows Forms Discussion :

Problème de casting


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Par défaut Problème de casting
    Bonjour,

    J’ai repris du code trouvé sur le site de msdn pour transférer des fichiers sur un serveur Ftp. J’ai un message d’erreur qui me dit qu’il est impossible de caster le System.Uri en string !

    Quelqu’un pourrait m’aider pour résoudre ce problème ?

    Merci

    Voici le code :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    public class FtpState
        {
            private ManualResetEvent wait;
            private FtpWebRequest request;
            private String fileName;
            private Exception operationException = null;
            String status;
    
            public FtpState()
            {
                wait = new ManualResetEvent(false);
            }
    
            public ManualResetEvent OperationComplete
            {
                get { return wait; }
            }
    
            public FtpWebRequest Request
            {
                get { return request; }
                set { request = value; }
            }
    
            public String FileName
            {
                get { return fileName; }
                set { fileName = value; }
            }
    
            public Exception OperationException
            {
                get { return operationException; }
                set { operationException = value; }
            }
    
            public String StatusDescription
            {
                get { return status; }
                set { status = value; }
            }
        }
    
        public class AsynchronousFtpUpLoader
        {
            private Uri target;
            private String fileName;
            private FtpState state;
            private FtpWebRequest request;
            ManualResetEvent waitObject;
    
            public AsynchronousFtpUpLoader(String target, String filename)
            {
                ManualResetEvent waitObject;
    
                target = new Uri(target);
                fileName = filename;
                state = new FtpState();
                request = (FtpWebRequest)WebRequest.Create(target);
                request.Method = WebRequestMethods.Ftp.UploadFile;
    
                request.Credentials = new NetworkCredential("anonymous", "test");
    
                state.Request = request;
                state.FileName = fileName;
    
                waitObject = state.OperationComplete;
                // controler
                request.BeginGetRequestStream(new AsyncCallback(EndGetStreamCallback), state);
    
                waitObject.WaitOne();
    
                if (state.OperationException != null)
                {
                    throw state.OperationException;
                }
                else
                {
                    Console.WriteLine("The operation completed + {0}", state.StatusDescription);
                }
            }
    
            private static void EndGetStreamCallback(IAsyncResult ar)
            {
                FtpState state = (FtpState)ar.AsyncState;
    
                Stream requestStream = null;
    
                try
                {
                    requestStream = state.Request.EndGetRequestStream(ar);
    
                    const int bufferLength = 2048;
                    byte[] buffer = new byte[bufferLength];
                    int count = 0;
                    int readBytes = 0;
                    FileStream stream = File.OpenRead(state.FileName);
                    do
                    {
                        readBytes = stream.Read(buffer, 0, bufferLength);
                        requestStream.Write(buffer, 0, readBytes);
                        count += readBytes;
                    }
    
                    while (readBytes != 0);
                    Console.WriteLine("Writing {0} bytes to the stream.", count);
                    requestStream.Close();
                    state.Request.BeginGetResponse(new AsyncCallback(EndGetResponseCallback), state);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Could not get the request stream.");
                    state.OperationException = e;
                    state.OperationComplete.Set();
                    return;
                }
            }
    
            private static void EndGetResponseCallback(IAsyncResult ar)
            {
                FtpState state = (FtpState)ar.AsyncState;
                FtpWebResponse response = null;
                try
                {
                    response = (FtpWebResponse)state.Request.EndGetResponse(ar);
                    response.Close();
                    state.StatusDescription = response.StatusDescription;
                    state.OperationComplete.Set();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error getting response.");
                    state.OperationException = e;
                    state.OperationComplete.Set();
                }
            }
        }
    et l'appel avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AsynchronousFtpUpLoader ftp = new AsynchronousFtpUpLoader("ftp://xxx.xxx.xxx.xx/TestFtp/fichier.pdf", @"C:\Temp\fichier.pdf");

  2. #2
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2005
    Messages : 64
    Par défaut
    essai de déclarer une variable de type Uri (un string ce n'est pas un Uri)

    Uri uriTarget=new Uri(target);

Discussions similaires

  1. [CASTS]problème de cast de Time
    Par DeVoN dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 17h24
  2. [JDBC Driver][JSTL] Problème de cast de données
    Par GyLes dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/09/2005, 10h00
  3. problème de cast!
    Par LaseLiep dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2005, 09h30
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42

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