J'utilise C++ avec libcurl pour effectuer des transferts SFTP/FTPS. Avant de télécharger un fichier, je dois vérifier si le fichier existe sans le télécharger.en utilisant libcurl pour vérifier si un fichier existe sur un site SFTP
Si le fichier n'existe pas, je rencontre les problèmes suivants:
//set up curlhandle for the public/private keys and whatever else first.
curl_easy_setopt(CurlHandle, CURLOPT_URL, "sftp://[email protected]:host/nonexistent-file");
curl_easy_setopt(CurlHandle, CURLOPT_NOBODY, 1);
curl_easy_setopt(CurlHandle, CURLOPT_FILETIME, 1);
int result = curl_easy_perform(CurlHandle);
//result is CURLE_OK, not CURLE_REMOTE_FILE_NOT_FOUND
//using curl_easy_getinfo to get the file time will return -1 for filetime, regardless
//if the file is there or not.
Si je ne l'utilise CURLOPT_NOBODY, cela fonctionne, je reçois CURLE_REMOTE_FILE_NOT_FOUND.
Cependant, si le fichier existe, il est téléchargé, ce qui me fait perdre du temps, puisque je veux juste savoir s'il est là ou non.
Toutes les autres techniques/options qui me manquent? Notez que cela devrait marcher aussi pour les ftps.
Éditer: Cette erreur se produit avec sftp. Avec FTPS/FTP, j'obtiens CURLE_FTP_COULDNT_RETR_FILE, avec lequel je peux travailler.
Avez-vous déjà résolu ce problème? J'ai le même problème. – Lextar