PDA

View Full Version : سوال: دریافت فایل از FTP به وسیله سی شارپ



sjalili320
پنج شنبه 09 تیر 1401, 16:33 عصر
دوستان سلام، وقت بخیر
مشکلی در خصوص دانلود فایل از FTP دارم که ممنون میشم اگر کسی تجربه ای داره کمکم کنه.
من از کد زیر برای دانلود فایل از FTP استفاده میکنم.

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(URL);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("username", "password");
request.UsePassive = true;
request.UseBinary = true;
request.EnableSsl = false;
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
....
در مواردی که نام و مسیر فایل ها انگلیسی هستند کد به خوبی کار میکنه، ولی وقتی نام فایل یا مسیر اون کاراکتر فارسی داشته باشه پاسخی از سرور دریافت نمیشه و با پیغام خطای زیر مواجه میشم:
The remote server returned an error: (550) File unavailable (e.g., file not found, no access)
Source


طبیعتا این مشکل در حالت لیست کردن محتویات دایرکتوری های FTP هم وجود داره و اگر اسم فولدری فارسی باشه دیگه دسترسی به محتویات اون دایرکتوری ندارم
ممنون میشم اگه راهنماییم بفرمایین

Mahmoud.Afrad
شنبه 11 تیر 1401, 11:58 صبح
ابتدا Url را با WebUtility.Encode کد کنید و بعد request رو بسازید.
https://docs.microsoft.com/en-us/dotnet/api/system.net.webutility.urlencode