PDA

View Full Version : کار با FTP



hamid67fathi
سه شنبه 16 تیر 1388, 14:21 عصر
سلام
کسی مرجعی برای کار با FTP سراغ نداره ؟

Sajjad.Aghapour
سه شنبه 16 تیر 1388, 15:07 عصر
من دارم یه Ftp Manager می نویسم.البته از روی اطلاعات خودم دارم می نویسم.انشالا وقتی تکمیل شد اون رو ارائه می کنم...

hamid67fathi
سه شنبه 16 تیر 1388, 15:26 عصر
من يک جايی ميشکل داشتم اونم اينه هست که ميخوام حجم يک فلدر رو بدست بيارم و تعداد فايل های اون رو .
شما برای اين کار چه راهی رو پيشنهاد می کنيد ؟

Sajjad.Aghapour
سه شنبه 16 تیر 1388, 23:59 عصر
از


System.Net.WebRequestMethods.Ftp.ListDirectoryDeta ils

استفاده کن.مشخصات فایل ها و دایرکتوری های یک دایرکتوری رو بهتون میده از جمله : fileSize , Permission , Last Modify و نام فایل .....
البته اون رو باید تفکیک کنی که با استفاده از متدهای string کاری نداره.....

hamid67fathi
پنج شنبه 18 تیر 1388, 20:59 عصر
حجم کلی فولدر رو نمايش نميده !!
تعداد فايل های موجود در فولدر رو چطور بايد بدست بيارم ؟
modify رو هم بصورت کامل نشون نميده !!
راه ديگری نيست ؟؟

Sajjad.Aghapour
پنج شنبه 18 تیر 1388, 22:45 عصر
حجم کلی فولدر رو نمايش نميده !!
تعداد فايل های موجود در فولدر رو چطور بايد بدست بيارم ؟
modify رو هم بصورت کامل نشون نميده !!
راه ديگری نيست ؟؟

بابا ایول .خوب این اطلاعاتی که بهتون میده رو می تونید برای محاسبه همه این چیزها به کار ببرید....
مثلا:
تعداد فایل های اون دایرکتوری رو می تونید از طریق extension اونها بدست بیارید(و همچنین اندازه کلی).من همه اطلاعاتی رو که لازم داشتم تا حالا تونستم بدست بیارم...


if(Path.GetExtension(fileName)!="")
// it is a file and not a directory


اما اینکه گفتید راه دیگه ای هم هست یا نه؟
اگه برای آپلود میخواین :
بله.استفاده از WebClient و بهره گرفتن از متدهای UploadData , UploadFile و .. و همچنین رویدادهای UploadProgressChanged , UploadDataCompleted و ..

اگه برای لیست کردن فایلها می خواین که پیشنهاد می کنم از همون FtpWebRequest استفاده کنید.

پروژه من هم داره تکمیل میشه ولی خوب همین طور داره حجمش هم سنگین تر میشه (تا الان 10 مگابایت) که اگه اینطور باشه متاسفانه نمی تونم اون رو اپ کنم.....

ولی روش ها رو ارائه میکنم(البته اگه زنده باشم :لبخند:)....

hamid67fathi
جمعه 19 تیر 1388, 13:22 عصر
سلام
ممنون که راهنمايی ميکنيد.
منظورم اين بود که زمانی که ديتيل ميگيريم تعداد فايل های مجود رو هم بدست بياريم که ديگه نيازی به اتصال دوباره برای چک کردن فايل های درون فولدر نباشه !
بنده هم ز FTPWebRequest استفاده ميکنم.
و برای تشخيص فايل از فولدر از از کراکتر اول ديتيل استفاده ميکنم.

Sajjad.Aghapour
جمعه 19 تیر 1388, 22:48 عصر
من متوجه منظور شما نمیشم.ولی چیزی که ظاهرا متوجه شدم:
من این کار رو میکنم.


FtpWebResponse response = (FtpWebResponse)mainRequest.GetResponse();
StreamReader reader = null;
Stream stream = response.GetResponseStream();

//try block
reader = new StreamReader(stream, Encoding.UTF8);

StringBuilder result = new StringBuilder();

string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append('\n');

line = reader.ReadLine();

}
result.Remove(result.ToString().LastIndexOf('\n'), 1);

حالا میام result رو به یه تابع ارسال میکنم که توی اون تابع اجزای هر خط (که هر خط یکی از دایرکتوری ها یا فایل های FTP هست) تفکیک میشه و خروجی اون شامل خاصیت های fileName , fileSize , Last Modified , Permission ... و همچنین توی این تابع با تشخیص فایل یا دایرکتوری بودن ، totalFiles , totalDreictories و همچنین totalSize رو حساب میکنم.....

به همین راحتی ....

linux
شنبه 20 تیر 1388, 01:42 صبح
سلام
کسی مرجعی برای کار با FTP سراغ نداره ؟
http://www.codeproject.com/KB/IP/ftplib.aspx
این سورس یک ftp client هست مطالعه کنید