पहले मैं वास्तव में इसे स्वयं हल करना चाहता था लेकिन मैंने कुछ समय के लिए टेक्स्टफाइल को नहीं लिखा है। ड्रैग एंड ड्रॉप बॉक्स में डालने के बाद, मैं वास्तव में किसी फ़ाइल का नाम बदलने की कोशिश कर रहा हूं, लेकिन फिर सी # कहता है कि यह निर्दिष्ट फ़ाइल नहीं ढूंढ सकता है।

मैं अपने प्रोजेक्ट को ड्रॉपबॉक्स पर अपलोड कर रहा हूं ताकि जो कोई भी मदद करना चाहता है उसे इसे स्क्रैच से दोहराने की आवश्यकता नहीं है: https://www.dropbox.com/s/9cta5dsrzosk81t/DragDropForm .v12.suo?dl=0

लेकिन यहां मेरा कोड वैसे भी है यदि लोगों के लिए मेरे प्रश्न का उत्तर देना आसान है। शुक्रिया।

    public Form1()
    {
        InitializeComponent();
    }


    private string getFileName(string path)
    {            
        return Path.GetFileName(path);
    }

    private string getDirectoryName(string path)
    {
        return Path.GetDirectoryName(path);
    }


    private void Form1_DragDrop(object sender, DragEventArgs e)
    {
        //TAKE dropped items and store in array.
        string[] dropppedFiles = (string[])e.Data.GetData(DataFormats.FileDrop);

        //LOOP through all droppped items and display them
        foreach (string file in dropppedFiles)
        {
            string filename = getFileName(file);         
            listBox1.Items.Add(filename);
            FileInfo fi = new FileInfo(filename);
            {
                //IF filename "NewName" doesn't exist in drag drop box.
                if (!File.Exists("NewName"))
                {                        
                    getDirectoryName(filename);
                    fi.MoveTo("NewName");
                }
            }
        }
    }

    private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true)
        {
            e.Effect = DragDropEffects.All;
        }
    }
0
Jordan Nash 21 जून 2016, 12:02

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि समस्या इस पंक्ति में है:

FileInfo fi = new FileInfo(filename);

आपको file (पूर्ण पथ) से FileInfo इस तरह से गुजरना होगा:

FileInfo fi = new FileInfo(file);

वही getDirectoryName(filename) पर लागू होगा, getDirectoryName(file); होना चाहिए, हालांकि आप किसी भी चीज़ के लिए उस विधि का उपयोग नहीं कर रहे हैं, मान लौटा रहे हैं...

1
Pikoh 21 जून 2016, 12:52