כותב |
|
ShadowBeast אחראי פורומים


הצטרף / הצטרפה: 22 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1073
|
נשלח בתאריך: 17 February 2007 בשעה 18:26 | | IP רשוּם
|
|
|
|
ניסיתי לכתוב תוכנה שתוריד חלקי קובץ, כלומר, כמו מנהלי הורדה רבים, תוריד את הקובץ בחלקים ואז תחבר את החלקים לקובץ אחד... אבל איך אני יכול לעשות את זה? ניסיתי להשתמש במתודות הקיימות של OpenRead ו DownloadFile אבל ללא הצלחה... מה שלא הצלחתי זה להבין איך אני יכול להתחיל את ההורדה מחלק מסויים של הקובץ, כלומר, לפי מה בכלל אני יכול לחלק את הקובץ בצורה שתהיה מובנת?
תודה.
__________________ The highest knowledge is to know that we are surrounded by mystery - Albert Schweitzer
He who will not take the hint, must take the consequence - Glenn v. Covey (1854)
ShadowBeast
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר


הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 17 February 2007 בשעה 18:49 | | IP רשוּם
|
|
|
|
כמובן שאתה צריך לככתוב את כל ה-HTTP לבד (לא חייב, אפשר כמו שאמרת ורק להוסיף headers)...
קובץ גדול נשלח בחתיכות בשר (Partial Content)...
ראה במסמך הבא את 14.35 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
וראה בעיקר Ethereal בזמן שהתכנה שאתה מתכוון אליה רצה.
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
ShadowBeast אחראי פורומים


הצטרף / הצטרפה: 22 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1073
|
נשלח בתאריך: 17 February 2007 בשעה 19:28 | | IP רשוּם
|
|
|
|
הממ... תודה רבה, זה מעניין... עדיין לא ממש הצלחתי ליישם את זה, אתה יכול לתת לי דוגמה קצרה של יישום של הדבר הזה? רק אם יש לך זמן, תודה.
__________________ The highest knowledge is to know that we are surrounded by mystery - Albert Schweitzer
He who will not take the hint, must take the consequence - Glenn v. Covey (1854)
ShadowBeast
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר


הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 17 February 2007 בשעה 20:38 | | IP רשוּם
|
|
|
|
הממ... קראת גם את 14.35.2
אתה יכול להוריד את הגודל של הקובץ עם HEAD
בשביל במגהבייט הראשון אתה אמור להוסיף header כזה:
בשביל השני:
קוד:
range:bytes=1048577-2097152 |
|
|
וכן הלאה, אם השרת מחזיר 200 אז הוא לא תומך, אם הוא מחזיר 206 אז סבבה...
ואתה יכול להוריד אותם בו זמנית (עם threads)
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
ShadowBeast אחראי פורומים


הצטרף / הצטרפה: 22 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1073
|
נשלח בתאריך: 17 February 2007 בשעה 21:00 | | IP רשוּם
|
|
|
|
וואי תודה רבה, אתה לא יודע כמה אתה עוזר לי... בלעדיך לא הייתי מצליח, תודה!
__________________ The highest knowledge is to know that we are surrounded by mystery - Albert Schweitzer
He who will not take the hint, must take the consequence - Glenn v. Covey (1854)
ShadowBeast
|
חזרה לתחילת העמוד |
|
|
ShadowBeast אחראי פורומים


הצטרף / הצטרפה: 22 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1073
|
נשלח בתאריך: 17 February 2007 בשעה 22:35 | | IP רשוּם
|
|
|
|
יש לי שוב בעייה... ניסיתי לעשות את זה:
קוד:
WebRequest request = WebRequest.Create(textBox1.Text);
request.Method = "HEAD";
using (WebResponse response = request.GetResponse()) { size = response.ContentLength; } Client = new WebClient(); Client.Headers.Add("range:bytes=0-" + Convert.ToString(size / 2)); Stream strm = Client.OpenRead(textBox1.Text); Client.Dispose(); Client.Headers.Clear(); Client.Headers.Add("range:bytes=" + Convert.ToString((size / 2) + 1) + "-" + size.ToString()); Stream strm2 = Client.OpenRead(textBox1.Text); FileStream file = new FileStream(textBox2.Text, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter sw = new StreamWriter(file); sw.Write(strm); sw.Write(strm2); sw.Close(); file.Close();
|
|
|
אבל משום מה זה לא עבד... זה מחזיר לי שגיאה של "An exception occurred during a WebClient request." למה זה קורה?
__________________ The highest knowledge is to know that we are surrounded by mystery - Albert Schweitzer
He who will not take the hint, must take the consequence - Glenn v. Covey (1854)
ShadowBeast
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר


הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 18 February 2007 בשעה 14:54 | | IP רשוּם
|
|
|
|
לא סיפקת ל-web client כתובת בכלל...
ואגב, סתם מנסיון, אני לא בטוח, אבל בתחום שאני מדדתי הכי מהיר HttpWebRequest והכי איטי WebClient
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|