Neha
Neha

Reputation: 821

Copying an image file to an empty folder in using WPF C#

After going through all the related stuff to copying files i am unable to find an answer to my problem of an exception occurring while i was trying to copy a file to an empty folder in WPF application. Here is the code snippet.

public static void Copy()
{
    string _finalPath;
    foreach (var name in files) // name is the filename extracted using GetFileName in a list of strings
    {
        _finalPath = filePath; //it is the destination folder path e.g,C:\Users\Neha\Pictures\11-03-2014
        if(System.IO.Directory.Exists(_finalPath))
        {
            _finalPath = System.IO.Path.Combine(_finalPath,name);
            System.IO.File.Copy(name, _finalPath , true);
        }
    }
}

While debugging exception is occuring at file.copy() statement which says

"FileNotFoundException was unhandled" could not find file

i already know about the combining path and other aspects of copy but i dont know why this exception is being raised. I am a noob to WPF please help.........

Upvotes: 0

Views: 1267

Answers (3)

Nitin Joshi
Nitin Joshi

Reputation: 1668

Use following code:

    public static void Copy()
    {
        string _finalPath;
        var files = System.IO.Directory.GetFiles(@"C:\"); // Here replace C:\ with your directory path.
        foreach (var file in files)             
        {
            var filename = file.Substring(file.LastIndexOf("\\") + 1); // Get the filename from absolute path
            _finalPath = filePath; //it is the destination folder path e.g,C:\Users\Neha\Pictures\11-03-2014
            if (System.IO.Directory.Exists(_finalPath))
            {
                _finalPath = System.IO.Path.Combine(_finalPath, filename);
                System.IO.File.Copy(file, _finalPath, true);
            }
        }
    }

Upvotes: 1

myermian
myermian

Reputation: 32505

You're variable, name, is most likely just the file name (i.e. something.jpg). When you use the File.Copy(...) method, if you do not supply an absolute path the method assumes a path relative to the executable.

Basically, if you are running your app in, for example, C:\Projects\SomeProject\bin\Debug\SomeProject.exe, then it is assuming your file is C:\Projects\SomeProject\bin\Debug\something.jpg.

Upvotes: 0

Adam Bilinski
Adam Bilinski

Reputation: 1198

The GetFileName () only returns the actual name of the file (drops the path) what you want is a full path to the file. So you getting an exception because the 'name' does not exist on your drive (path is unknown)

Upvotes: 0

Related Questions