2012-02-09 10 views
6

मुझे फ़ाइल को बनाकर फ़ाइल को एक निर्देशिका से दूसरी निर्देशिका में कॉपी करने में कुछ समस्या है यदि फ़ोल्डर में मौजूद नहीं है गन्तव्य निर्देशिका।फ़ोल्डर को बनाकर फ़ाइल को एक निर्देशिका से दूसरी निर्देशिका में कॉपी करने के लिए कैसे करें यदि वह फ़ोल्डर मौजूद नहीं है

उदाहरण:

  • स्रोत पथ: C:\temp\test\1.txt
  • गंतव्य पथ: C:\Data\

तो C:\Data\ "अस्थायी" या "परीक्षण" फ़ोल्डर शामिल नहीं है, यह पहले फ़ोल्डर बनाने चाहिए का मुकाबला करना।

C:\Data\temp\test\1.txt

पर कॉपी किया नीचे मेरी कोड है। लेकिन यह काम नहीं करता ..

Private Sub btnBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackup.Click 
      Dim sourcepath As String = "C:\temp\test\1.txt" 
    Dim DestPath As String = "C:\Data\" 
    CopyDirectory(sourcepath, DestPath) 
End Sub 

Private Shared Sub CopyDirectory(sourcePath As String, destPath As String) 
    If Not Directory.Exists(destPath) Then 
     Directory.CreateDirectory(destPath) 
    End If 

    For Each file__1 As String In Directory.GetFiles(sourcePath) 
     Dim dest As String = Path.Combine(destPath, Path.GetFileName(file__1)) 
     File.Copy(file__1, dest) 
    Next 

    For Each folder As String In Directory.GetDirectories(sourcePath) 
     Dim dest As String = Path.Combine(destPath, Path.GetFileName(folder)) 
     CopyDirectory(folder, dest) 
    Next 
End Sub 
+0

किसी भी त्रुटियों

तो समाधान बस निर्देशिका नाम से विकसित 1.txt दूर करने के लिए है? और आप XP या Windows 7 का उपयोग कर रहे –

+4

वाक्यांश की तरह "यह काम नहीं करता" इसलिए जब एक सवाल जमा करके अवरुद्ध किया जाना चाहिए;) –

उत्तर

9

निम्नलिखित निर्देशिका नहीं है।

Dim sourcepath As String = "C:\temp\test\1.txt" 

क्योंकि आप इसे Directory.GetFiles(sourcePath) में निर्देशिका के रूप में उपयोग कर रहे हैं।

इसके अलावा, मैं आपके सवालों का अधिक अगली बार विस्तृत करने की सलाह देते हैं। कोड संदेश या (यदि फ़ाइल मौजूद है) संदेश के साथ एक IOException "निर्देशिका नाम अमान्य है" के रूप में उपयुक्त पथ के साथ DirectoryNotFoundException तरह सार्थक अपवाद को जन्म देती है। आपको उस प्रश्न में जोड़ा जाना चाहिए था।

Dim sourcepath As String = "C:\temp\test\" 

आप केवल एक फ़ाइल की प्रतिलिपि करने की जरूरत है, CopyTo method का उपयोग करें::

Dim sourcepath As String = "C:\temp\test\" 
Dim DestPath As String = "C:\temp\Data\" 
If Not Directory.Exists(DestPath) Then 
    Directory.CreateDirectory(DestPath) 
End If 
Dim file = New FileInfo("C:\temp\test\1.txt") 
file.CopyTo(Path.Combine(DestPath, file.Name), True) 
+0

मैं पाठ फ़ाइल का एक बहुत है, लेकिन मैं केवल फ़ाइल 1.txt प्रतिलिपि बनाना चाहते हैं। – user1101157

+0

@ user1101157: मेरा उत्तर अपडेट किया गया। –

0
Dim strMasterResourceDirectory As String 
    Dim strDirectory As String 

    strDirectory = "C:\TestDestination" 
    strMasterResourceDirectory = "TestResource" 

    If My.Computer.FileSystem.DirectoryExists(strDirectory) = False Then 
     My.Computer.FileSystem.CreateDirectory(strDirectory) 
    End If 

    ' Loop through each file in the directory 
    For Each file As IO.FileInfo In New IO.DirectoryInfo(strDirectory).GetFiles 

     If file.Name <> "Thumbs.db" Then 

      System.IO.File.Delete(strDirectory & "\" & file.Name) 

     End If 
    Next 

    ' Loop through each file in the directory 
    For Each file As IO.FileInfo In New IO.DirectoryInfo(strMasterResourceDirectory).GetFiles 

     If file.Name <> "Thumbs.db" Then 

      ' copy resource to users local directory 

      file.CopyTo(strDirectory & "\" & file.Name) 

     End If 
    Next 
+0

स्टैक ओवरव्लो में आपका स्वागत है! कृपया अपने कोड में थोड़ा स्पष्टीकरण जोड़ने पर विचार करें। धन्यवाद! – Aurasphere

संबंधित मुद्दे

 संबंधित मुद्दे