واضح آرشیو وب فارسی:سایت ریسک: File.Existsدر وب abasfar 11 فروردين 1390, 19:56سلام من میخوام بدونم مثلا سایت X دارای فایلی به این نام در این زیر شاخه است یانه برای سایت Y همین طور وغییره یعنی میخوام File.Exists وب را داشته باشم البته کدهای هم هست که سرعتش خیلی پایین است چون صفحه یا فایل را کامل دانلود میکننه وبعد میگه هست یا نیست ممنون میشم کمک کنید کدی تو این مایه ها نمیخوام try { webresponse = ()req.GetResponse(); return true; } catch(System.Net.WebException we) { return false; } MDP 11 فروردين 1390, 20:17یه نکته ای این وسط گم شده : شما نمی تونید به روت سایت ها دسترسی داشته باشید.مگر اینکه اون سایت برای اون فولدر دسترسی خواندن باز کرده باشه. ثانیا این مورد نشدنیه به File.Exists چون این متد فقط روی جایی که اجرا میشه کار میکنه و جایی که اجرا میشه هم روی سرور شماست... ! abasfar 11 فروردين 1390, 20:24ممنون دوست عزیز اما اگر کوکی درست کننی واز robot.txt اجازه داریکتوری را بگیری چرا میشه مانند ویزیت از صفحه یا دانلود یک سایت من که نمیخوام لیست فایل داریکتوری را بگیرم و اگر به فرمایش شما اجازه نمیدهد پس چه نیازی به robot.txt است حالا من نگفتم File.Exists یک اور رایت داره برای وب گفتم مثل این تابع که دانلود هدر براش کافی باشه sepidweb 12 فروردين 1390, 14:40می تونید با ارسال درخواست های http get و بررسی هدر بازگشتی ببینید آیا فایل وجود دارد یا نه. مثلا 400 بدین معناست که فایل وجود ندارد، و 200 بدین معناست که فایل قابل دانلود هست. abasfar 12 فروردين 1390, 14:43می تونید با ارسال درخواست های http get و بررسی هدر بازگشتی ببینید آیا فایل وجود دارد یا نه. مثلا 400 بدین معناست که فایل وجود ندارد، و 200 بدین معناست که فایل قابل دانلود هست. دوست عزیز ممنون میشم اگه بیشتر توضیح دهید ممنون:rose: sepidweb 12 فروردين 1390, 14:57باید جزئیات ارسال درخواست http رو بدونید. کلاس هایی که نوشتید خیلی سطح بالا هستند. باید از کلاس های سطح پایین تر برای اتصال استفاده کنید. کدی شبیه به این string get = "GET /Definition.aspx?" + currentBase + " " + "Host: host.ir " + "User-Agent: Mozilla/5.0 " + "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 " + "Accept-Language: en-us,en;q=0.5 " + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 " + "Cookie: " + Session.sessionID + " "; string doubleReturn = " "; System.Net.Sockets.TcpClient Tcp = new TcpClient(); Tcp = new TcpClient("site.ir", 80); NetworkStream Stream = new NetworkStream(Tcp.Client); stream.Write(Encoding.ASCII.GetBytes(postString), 0, ((string)(postString)).Length); byte[] buffer = new byte[toLoadBytes]; int numberOfBytesRead = 0; try { while (numberOfBytesRead != toLoadBytes && ++i < 1000) //just wait 10 seconds and no more for data to load. //1000 * 10ms = 10 seconds { numberOfBytesRead += stream.Read(buffer, numberOfBytesRead, buffer.Length - numberOfBytesRead); System.Threading.Thread.Sleep(10); //simply block. make interaction with other applications easier. if (!headerLogged) { string tempResponse = Encoding.ASCII.GetString(buffer, 0, numberOfBytesRead); Log.LogInSession("response header: " + tempResponse.Substring(0, tempResponse.IndexOf(" "))); if (numberOfBytesRead < toLoadBytes) Log.LogInSession("waiting for the rest of the data.."); headerLogged = true; if (tempResponse.Contains("200") جزئیاتش رو خودتون در بیارید. abasfar 12 فروردين 1390, 15:05باید جزئیات ارسال درخواست http رو بدونید. کلاس هایی که نوشتید خیلی سطح بالا هستند. باید از کلاس های سطح پایین تر برای اتصال استفاده کنید. کدی شبیه به این string get = "GET /Definition.aspx?" + currentBase + " " + "Host: host.ir " + "User-Agent: Mozilla/5.0 " + "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 " + "Accept-Language: en-us,en;q=0.5 " + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 " + "Cookie: " + Session.sessionID + " "; string doubleReturn = " "; System.Net.Sockets.TcpClient Tcp = new TcpClient(); Tcp = new TcpClient("site.ir", 80); NetworkStream Stream = new NetworkStream(Tcp.Client); stream.Write(Encoding.ASCII.GetBytes(postString), 0, ((string)(postString)).Length); byte[] buffer = new byte[toLoadBytes]; int numberOfBytesRead = 0; try { while (numberOfBytesRead != toLoadBytes && ++i < 1000) //just wait 10 seconds and no more for data to load. //1000 * 10ms = 10 seconds { numberOfBytesRead += stream.Read(buffer, numberOfBytesRead, buffer.Length - numberOfBytesRead); System.Threading.Thread.Sleep(10); //simply block. make interaction with other applications easier. if (!headerLogged) { string tempResponse = Encoding.ASCII.GetString(buffer, 0, numberOfBytesRead); Log.LogInSession("response header: " + tempResponse.Substring(0, tempResponse.IndexOf(" "))); if (numberOfBytesRead < toLoadBytes) Log.LogInSession("waiting for the rest of the data.."); headerLogged = true; if (tempResponse.Contains("200") جزئیاتش رو خودتون در بیارید. ممنون دوست عزیز همان سوکت پروگرمینگ خودمان :rose: abasfar 14 فروردين 1390, 22:02شرمنده با کلی دردسر الان فهمیدم که روی سرور Linux کار نمیکنه کمک کمک ................ سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 238]