क्या कोई जानता है कि फ़ाइल कैसे डाउनलोड करें (वेबपृष्ठ खोलने के बिना), और इसे Visual Basic 6.0 में किसी निर्देशिका में सहेजें?फ़ाइल डाउनलोड करें - वीबी 6
उत्तर
यदि आप इसे केवल कोड (इंटरनेट ट्रांसफर कंट्रोल) के साथ करना चाहते हैं, VBNet.mvps.org में वास्तव में अच्छा है कि कैसे URLDownloadToFile API कॉल का उपयोग करता है।
लेख से:
URLDownloadToFile एपीआई (Win3, WinNT3.x को छोड़कर) विंडोज ऑपरेटिंग सिस्टम के सभी संस्करणों पर उपलब्ध है। रिमोट फाइल नाम और स्थानीय फ़ाइल पथ और नाम, एपीआई निर्दिष्ट फ़ाइल को लक्ष्य नाम के रूप में सहेजने के द्वारा डाउनलोड की गई फाइलों को डाउनलोड करके। समारोह सभी फ़ाइल प्रकारों साथ काम करता है -, सादा पाठ, चित्र, एचटीएमएल, mpg, wav और ज़िप फ़ाइलें आदि फ़ाइल के लिए नियमित या चिंता करने के लिए संशोधन के बिना डाउनलोड किया जा रहा है और न ही कोई स्पष्ट आकार प्रतिबंध नहीं है या सीमा।
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000
Public Function DownloadFile(sSourceUrl As String, _
sLocalFile As String) As Boolean
//'Download the file. BINDF_GETNEWESTVERSION forces
//'the API to download from the specified source.
//'Passing 0& as dwReserved causes the locally-cached
//'copy to be downloaded, if available. If the API
//'returns ERROR_SUCCESS (0), DownloadFile returns True.
DownloadFile = URLDownloadToFile(0&, _
sSourceUrl, _
sLocalFile, _
BINDF_GETNEWESTVERSION, _
0&) = ERROR_SUCCESS
End Function
FYI करें - विंडोज 7 पर परीक्षण में, यह केवल कैश्ड संस्करण वापसी होगी, तो मैं पहले यह स्पष्ट करने के लिए अतिरिक्त समारोह लेख में वर्णित का इस्तेमाल किया था (और है कि काम किया)।
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
Alias "DeleteUrlCacheEntryA" _
(ByVal lpszUrlName As String) As Long
फिर कैश को साफ़ करने के लिए उपरोक्त फ़ंक्शन को गंतव्य URL के साथ पहले कॉल करें।
आपको ** एपीआई कॉल ** की आवश्यकता नहीं है, आपको ** इंटरनेट ट्रांसफर कंट्रोल की आवश्यकता नहीं है **। मूल वीबी 6 कोड का उपयोग करके बस इसे आसान तरीका करें। http://visualstudiomagazine.com/articles/2008/03/27/simple-asynchronous-downloads.aspx – MarkJ
+1, इन API कॉल में मुझे परिचय देने के लिए बहुत बहुत धन्यवाद। –
आप इंटरनेट स्थानांतरण नियंत्रण का उपयोग एक नमूना के लिए http://www.vb-helper.com/howto_get_file_from_web.html देखने की जरूरत का उपयोग कर सुझाव है। यदि आपको प्रमाण-पत्र निर्दिष्ट करने की आवश्यकता है, तो http://support.microsoft.com/kb/173264 भी देखें।
मुझे इंटरनेट ट्रांसफर कंट्रोल पसंद नहीं है क्योंकि यह तुल्यकालिक है। एक बार जब आप डाउनलोड शुरू कर देते हैं तो आपका एप्लिकेशन तब तक उत्तरदायी नहीं होता जब तक फ़ाइल डाउनलोड नहीं हो जाती है या एक त्रुटि फेंक दी जाती है। एसिंक्रोनस विधियों को लिखने के लिए WININET DLL का उपयोग करने के बहुत अच्छे उदाहरण हैं। यह मामूली नहीं है, लेकिन यह भी बहुत सक्षम है। Here स्टैक ओवरफ्लो से एक उदाहरण है।
यह ** ** वीबी 6 में एसिंक्रोनस डाउनलोड करने के लिए तुच्छ है और इसे एपीआई कॉल की आवश्यकता नहीं है। मेरा जवाब देखें http://stackoverflow.com/questions/1976152/download-file-vb6/1979417#1979417 – MarkJ
आपको एपीआई कॉल की आवश्यकता नहीं है, आपको इंटरनेट ट्रांसफर कंट्रोल की आवश्यकता नहीं है। मूल वीबी 6 कोड का उपयोग करके बस इसे आसान तरीका करें। नमूना कोड के साथ यहां एक उत्कृष्ट article by Karl Peterson है।
ऐसा कुछ था जिसे मैंने पहले कभी नहीं देखा था। मेरे पास WININET लाइब्रेरी का उपयोग करके एक पूर्ण श्रेणी है, इसलिए यदि मुझे इसे वीबी में फिर से करने की ज़रूरत है तो मैं शायद इसके साथ रहूंगा, लेकिन विकल्प हमेशा अच्छा होता है। – jac
यदि इंटरनेट एक्सप्लोरर की ऑफ़लाइन संपत्ति सत्य है तो यह काम नहीं करेगी। आपको एक फ़ाइल मिल जाएगी त्रुटि नहीं मिली। – kjack
इस प्रयास करें:
उदाहरण::
My.Computer.Network.DownloadFile _
("http://www.cohowinery.com/downloads/WineList.txt", _
"C:\Documents and Settings\All Users\Documents\WineList.txt")
यह वीबीएनईटी की तरह दिखता है, सवाल वीबी 6 –
इस
Sub DownloadFile(url, path)
Dim objReq
Dim objStream
Set objReq = CreateObject("MSXML2.XMLHTTP")
objReq.Open "GET", url, False
objReq.send
If objReq.Status = 200 Then
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.Write objReq.ResponseBody
objStream.Position = 0
objStream.SaveToFile path, 2
objStream.Close
Set objStream = Nothing
End If
Set objReq = Nothing
End Sub
प्रयास करें
My.Computer.Network.DownloadFile (*File to download*, *What to save it as*)
आप इसे में एक फ़ाइल नाम क्या यह के रूप में बचाने के लिए देना चाहिए
अधिक जानकारी http://smartreferences.blogspot.in
के बारे में है, मुझे नहीं पता कि इस जवाब पर कोई अंक क्यों नहीं है। यह एकमात्र उत्तर है जो वास्तव में बिना नियंत्रण नियंत्रण के काम करता है। मदद के लिए धन्यवाद। –
- 1. वीबी 6
- 2. वीबी 6
- 3. वीबी 6
- 4. वीबी 6
- 5. वीबी 6
- 6. वीबी 6
- 7. वीबी 6
- 8. वीबी 6
- 9. वीबी 6
- 10. वीबी 6
- 11. वीबी 6
- 12. वीबी 6
- 13. वीबी 6
- 14. वीबी 6
- 15. वीबी 6
- 16. वीबी 6
- 17. वीबी 6
- 18. वीबी 6
- 19. वीबी 6
- 20. विरासत वीबी 6 कोड
- 21. वीबी 6: वेरिएंट अक्षम करें
- 22. वीबी 6 EXE
- 23. वीबी 6 आईडीई
- 24. एक वीबी 6 एक्सई
- 25. मैं वीबी 6 प्रोग्राम
- 26. वीबी 6 अनुप्रयोगों को कैसे तैनात करें?
- 27. वीबी 6-एप्लिकेशन लॉन्च करते समय वीबी 6 में लॉग फ़ाइल कैसे बनाएं
- 28. वीबी 6 में रेगेक्स?
- 29. वीबी 6 में खुले फ़ाइल संवाद का उपयोग कैसे करें?
- 30. वीबी 6 एप्लिकेशन
** और 81 क्यू केवल 4 वोटों के साथ ??? ** –
आपको अपनी पोस्ट में हस्ताक्षर शामिल करने की आवश्यकता नहीं है - आपका उपयोगकर्ता कार्ड स्वचालित रूप से जोड़ा जाता है। अधिक जानकारी के लिए [एफएक्यू] (http://stackoverflow.com/faq#signatures) पढ़ें। – Artemix