2013-06-10 8 views
10

के पहले तर्क को स्वीकार करने के लिए एक परिभाषा शामिल नहीं मैं एक त्रुटि जो मैं ठीक से नहीं कर सकते मिला है। क्या कोई मेरी मदद कर सकता है और मुझे समझा सकता है कि क्या गलत हुआ?"एक" "बी" और कोई विस्तार विधि 'बी' के प्रकार

यह मेरा कोड है:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 

public partial class Form1 : Form 
{ 
    private bool pause = false; 
    private bool cut1 = false; 
    private bool copy1 = false; 

    public Form1() 

    { 
     InitializeComponent(); 
    } 



    // The lines with performed actions of a file 
    private void fileSystemWatcher1_Created(object sender,System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Created> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Changed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 
    private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Deleted> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Renamed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher2_Changed(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Changed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher2_Created(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Created> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher2_Deleted(object sender, System.IO.FileSystemEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Deleted> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    private void fileSystemWatcher2_Renamed(object sender, System.IO.RenamedEventArgs e) 
    { 
     if (!pause) 
     { 
      listBox1.Items.Add("File Renamed> " + e.FullPath + " -Date:" + DateTime.Now); 
     } 
    } 

    //1st directory 
    private void button2_Click(object sender, EventArgs e) 
    { 
     if (dlgOpenDir.ShowDialog() == DialogResult.OK) 
     { 
      fileSystemWatcher1.EnableRaisingEvents = false; // Stop watching 
      fileSystemWatcher1.IncludeSubdirectories = true; 
      fileSystemWatcher1.Path = dlgOpenDir.SelectedPath; 
      textBox1.Text = dlgOpenDir.SelectedPath;   // Text of textBox2 = Path of fileSystemWatcher2 
      fileSystemWatcher1.EnableRaisingEvents = true; // Begin watching 
     } 
    } 
    //2nd directory 
    private void button3_Click(object sender, EventArgs e) 
    { 
     if (dlgOpenDir.ShowDialog() == DialogResult.OK) 
     { 
      fileSystemWatcher2.EnableRaisingEvents = false; // Stop watching 
      fileSystemWatcher2.IncludeSubdirectories = true; 
      fileSystemWatcher2.Path = dlgOpenDir.SelectedPath; 
      textBox2.Text = dlgOpenDir.SelectedPath;   // Text of textBox2 = Path of fileSystemWatcher2 
      fileSystemWatcher2.EnableRaisingEvents = true; // Begin watching 
     } 
    } 
    //log 
    private void button1_Click(object sender, EventArgs e) 
    { 

     DialogResult resDialog = dlgSaveFile.ShowDialog(); 
     if (resDialog.ToString() == "OK") 
     { 
      FileInfo fi = new FileInfo(dlgSaveFile.FileName); 
      StreamWriter sw = fi.CreateText(); 
      foreach (string sItem in listBox1.Items) 
      { 
       sw.WriteLine(sItem); 
      } 
      sw.Close(); 
     } 
    } 
    //pause watching 
    private void pause_button_Click(object sender, EventArgs e) 
    { 
     if (!pause) 
     { 
      pause = true; 
      pause_button.Text = "Unpause"; 
     } 
     else 
     { 
      pause = false; 
      pause_button.Text = "Pause Watching"; 
     } 
    } 
    //clear listbox 
    private void clear_button_Click(object sender, EventArgs e) 
    { 
     listBox1.Items.Clear(); 
    } 

    private void Transfer_Click(object sender, EventArgs e) 
    { 
     if (copy1) 
     { 
      File.Copy(FileBrowseBox.Text, Path.Combine(DestinationBox.Text, Path.ChangeExtension(FileNameBox.Text, Path.GetExtension(FileBrowseBox.Text)))); 
     } 

     } 

    private void Browse_file_Click(object sender, EventArgs e) 
    { 
     DialogResult resDialog = openFileDialog1.ShowDialog(); 
     if (resDialog == DialogResult.OK) 
     { 
      FileBrowseBox.Text = openFileDialog1.FileName; 
     } 
    } 

    private void Browse_destination_Click(object sender, EventArgs e) 
    { 
     DialogResult resDialog = folderBrowserDialog1.ShowDialog(); 
     if (resDialog == DialogResult.OK) 
     { 
      DestinationBox.Text = folderBrowserDialog1.SelectedPath; 
     } 

    } 

    private void CopyButton_CheckedChanged(object sender, EventArgs e) 
    { 
     copy1 = true; 
    } 

} 
} 

इसमें कहा गया है समस्या इस हिस्से के भीतर है:

File.Copy(FileBrowseBox.Text, Path.Combine(DestinationBox.Text, Path.ChangeExtension(FileNameBox.Text, Path.GetExtension(FileBrowseBox.Text)))); 

मैं इस मंच पर इसे खोजने की कोशिश की है, लेकिन मैं वास्तव में इस सवाल का जवाब नहीं मिल सका या समाधान

यह इस कोड के साथ काम करता है:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
public partial class Form1 : Form 
{ 
    private bool cut = false; 
    private bool copy = false; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
{ 
    File.Copy(FileBrowseBox.Text, Path.Combine(DestinationBox.Text, Path.ChangeExtension(FileBox.Text, Path.GetExtension(FileBrowseBox.Text)))); 
    label2.Text = "File Transfer Succeeded"; 
} 

    private void button2_Click(object sender, EventArgs e) 
    { 
     DialogResult resDialog = openFileDialog1.ShowDialog(); 
     if (resDialog == DialogResult.OK) 
     { 
      FileBrowseBox.Text = openFileDialog1.FileName; 
      label2.Text = ""; 
     } 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     DialogResult resDialog = folderBrowserDialog1.ShowDialog(); 
     if (resDialog == DialogResult.OK) 
     { 
      DestinationBox.Text = folderBrowserDialog1.SelectedPath; 
      label2.Text = ""; 
     } 
    } 

    private void radioButton1_CheckedChanged(object sender, EventArgs e) 
    { 
     copy = true; 
    } 

    private void radioButton2_CheckedChanged(object sender, EventArgs e) 
    { 
     cut = true; 
    } 
} 
} 

उत्तर

17

आपको यह त्रुटि मिल रही है क्योंकि आपके पास File नाम का एक लेबल है जिसका नाम System.IO.File से संदर्भित किया जा रहा है। आप या तो Label का नाम बदल सकते हैं, जिसे मैं अनुशंसा करता हूं, या आप इसके बजाय System.IO.File.Copy के पूर्ण योग्यता पथ का उपयोग कर सकते हैं।

+1

+1 मुझे इसे हराया। –

+0

@ ps.s.w.g, बहुत बहुत धन्यवाद, मैं हाल ही में बहुत सारे कारणों से भी बहुत कुछ कर रहा हूं। : डी –

+0

मुझे नाम के साथ एक लेबल मिला: "फ़ाइल" और मैंने नाम बदल दिया। लेकिन यह काम नहीं किया। – Loko

8

स्पष्ट रूप से आपके पास Label नाम File है। यह System.IO.File कक्षा को छाया करता है और त्रुटि का कारण बनता है। पूर्ण वर्ग के नाम निर्दिष्ट करना समस्या को खत्म करना चाहिए:

System.IO.File.Copy(... 
+0

यही कारण है कि आप चर नामों के लिए ऊपरी-केस का उपयोग नहीं करते हैं, lol। – Nolonar

6

ठीक है मैं आज और "एक" DID "बी" के लिए एक परिभाषा शामिल इस कष्टप्रद त्रुटि मिली।

वीएस2012 में समाधान खोलने के बाद मुझे यह गड़बड़ हो गई और फिर इसे VS2010 खोलना पड़ा।

प्रभावित परियोजना में संदर्भ डीएलएल को हटाकर, डीएलएल प्रोजेक्ट का निर्माण करते हुए बाहर निकलता है, फिर परिभाषित वीएस को परिभाषा को देखने के लिए फिर से संदर्भित किया जाता है।

+1

मुझे यह समस्या वीएस 2013 में मिल रही थी, इसलिए मैंने सुझाव दिया और संदर्भ को हटा दिया और इसे वापस जोड़ा। इस मुद्दे को ठीक किया गया। –

0

बस ध्यान दें। कक्षा में संपत्ति का नाम बदलने के बाद, मुझे डिबगिंग करते समय भी इसी तरह की त्रुटि मिली है। सब कुछ जांच लिया, यहां तक ​​कि सभी समाधान में पुरानी संपत्ति के नाम चुड़ैल ctrl + shift + f5 की खोज की। कुछ भी नहीं मिला ...

थोड़ी देर के बाद मैंने पुरानी संपत्ति के आउटपुट मूल्य के लिए 'जब हिट ...' स्थिति के साथ मौजूदा ब्रेकपॉइंट देखा।

0

यह एक और आसान मामला है जहां यह होगा। आइए कहें कि आप अपने फॉर्म में "बटन" जैसे टूल जोड़ते हैं। एक बार जब आप उपकरण को डबल क्लिक करते हैं, (विजुअल स्टूडियो में) कोड private void button1_Click(object sender, EventArgs e) { } आपके फॉर्म 1.cs में बनाया जाएगा। कोड this.button1.Click += new System.EventHandler(this.button1_Click); भी आपके Form1.Designer.cs में बनाया जाएगा। यदि आपने कोड का पहला सेट हटा दिया है (जो भी कारण है) तो आपको कोड के दूसरे बिट को भी हटाने की आवश्यकता होगी या अन्यथा आपको यह त्रुटि मिल जाएगी। यह एक विशिष्ट/सरल स्थिति हो सकती है लेकिन यह एक त्रुटि है कि नए प्रोग्रामर चल सकते हैं।

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