Bonjour,
Je dois transferer un fichier via webdav sur 2 Pc en reseaux (win7).
Avec Windows en utilisant la commande "net use * htpp://etc...." ca marche il creer bien mon lecteur reseaux. Je peux modifier, transferer, c'est OK...
Avec mon logiciel je peux aussi supprimer ca amrche donc pas de probleme de connexion ou de droit d'acces.
Mais des que je transfert j'ai l'erreur 409 probleme de conflit que remonte.
Que faire ?
Merci
Johan
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 public HttpStatusCode MettreAJour(string Fichier, string Url, string sUserName, string sPassword) { HttpStatusCode iStatus; string sStatus; Byte[] Data = getFileBytes(Fichier); string FileNameUrl = Url + "/" + Path.GetFileName(Fichier); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url); req.Method = "PUT"; req.ContentLength = Data.LongLength; // s'authentifie if (!String.IsNullOrEmpty(sUserName)) { NetworkCredential networkCredential = new NetworkCredential(sUserName, sPassword); req.Credentials = networkCredential; } Stream stream = req.GetRequestStream(); stream.Write(Data, 0, Data.Length); stream.Flush(); stream.Close(); HttpWebResponse response = (HttpWebResponse)req.GetResponse(); iStatus = response.StatusCode; sStatus = response.StatusDescription; if (iStatus == HttpStatusCode.OK || iStatus == HttpStatusCode.Created) Console.WriteLine(String.Format("PUT: OK Resultat = {0}: {1}", iStatus, sStatus)); else if (iStatus == HttpStatusCode.Unauthorized) Console.WriteLine("PUT WEBDAV: Vous n'avez pas les permissions requis! Contactez l'administrateur du système"); else Console.WriteLine(String.Format("PUT: Echec Resultat = {0}: {1}", iStatus, sStatus)); response.Close(); // Retourne le statut return iStatus; } Byte[] getFileBytes(string Fichier) { // lit le flux en mode binaire Stream stream = new FileStream(Fichier, FileMode.Open); BinaryReader binReader = new BinaryReader(stream); Byte[] result = binReader.ReadBytes((Int32)stream.Length); // lit tous stream.Close(); return result; }
Partager