• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 220
  • Last Modified:

Getting error/Exception when i try to copy a file to a Directory with my local path or UNC path.....

Hi

In my application i have function wich Backup imported files to a driectory local or with UNC path to a server ...whatever, but if the path is not correct then i want to get a messagebox and insted of moving the file i wil make copy of that file to the same directory path......

so first i check that the directory exist , if not then the function have to copy the file....but if the path is not valid or wrong path wich doea not exist i get this exception: Could not find a part of the path 'C:........
if ((file.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly)
                    {
                        DirectoryInfo dirPath = new System.IO.DirectoryInfo(toPath);
 
                        if (dirPath.Exists == true)
                        {
                            file.MoveTo(toPath);
                        }
                        else
                        {
                            MessageBox.Show(GetValue("couldntMoveFile") + fileName + GetValue("madeacopyinstead"), GetValue("warning"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            file.CopyTo(toPath);
                            return;
                        }                        
                    }

Open in new window

0
Adnan
Asked:
Adnan
  • 5
  • 2
1 Solution
 
Aleksei_MalkovCommented:
use Directory.Exists method instead of DirectoryInfo
0
 
drypzCommented:
Hi! Maybe the problem is the value of your variable "toPath";

set it like this...

string toPath = @"C:\SubDirectory";
0
 
AdnanAuthor Commented:
the value of the path is the backupfolder og UNC path to a directory set by user in application as settings.....
and it is declared like this:  string toPath = myFileTypeSettings.BackupPath;

i was in a meeting so i wil try to set Directory.Exists method instead of DirectoryInfo to se if it works...?!
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
AdnanAuthor Commented:
here is the full method/function:
   private void BackupImportedFiles()
        {
 
            if (myFileTypeSettings.BackupPath.Trim() != "" && toolStripMenuItemMoveFilesToBackup.Checked)
            {
                foreach (SimpleFile objFile in arrayImportFiles)
                {
                    String fileName = objFile.FileName;
                    string toPath = myFileTypeSettings.BackupPath;
                    DateTime now = System.DateTime.Now;
                    string date = now.ToString();
                    int startpos = fileName.LastIndexOf("\\") + 1;
                    int lengde = toPath.Trim().Length;
                    // Adds \ at the end of the backup path it not exists)
                    if (toPath.Substring(lengde) != "\\")
                    {
                        toPath += "\\";
                    }
 
                    date = date.Replace(" ", "_");
                    date = date.Replace(System.Globalization.DateTimeFormatInfo.CurrentInfo.TimeSeparator, "");
                    date = date.Replace(System.Globalization.DateTimeFormatInfo.CurrentInfo.DateSeparator, "");
                    toPath += date + " " + fileName.Substring(startpos);
 
                    FileInfo file = new FileInfo(fileName);
 
 
                    if ((file.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly)
                    {
                        DirectoryInfo dirPath = new System.IO.DirectoryInfo(toPath);
 
                        if (dirPath.Exists == true)
                        {
                            file.MoveTo(toPath);
                        }
                        else
                        {
                            MessageBox.Show(GetValue("couldntMoveFile") + fileName + GetValue("madeacopyinstead"), GetValue("warning"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            file.CopyTo(toPath);
                            return;
                        }                        
                    }
                }
            }
        }

Open in new window

0
 
drypzCommented:
Hi! Something like this...

file.MoveTo(toPath +  "filename");
0
 
AdnanAuthor Commented:
hmm no its not problom with moving the file or copy it to the directory path, every thing works fine until i define a wrong path f.eks:

Correct path: C:\AmA\AmABackup\backuptest
Every thing works fine until i do something wrong with the path.....


wrong path: C:\AmA\AmABackup\backuptest123

and the same problom with UNS phats...!!!

I just want my function/application to check the path if it is valid/correct path to the directory or it is a error on the path
0
 
AdnanAuthor Commented:
the problom is that if the function cant move file to the path, then it has to make a copy of that file into the directory/path, but the path is not correct and i get exception saying Could not find a part of the path 'C: because there are no correct path to copy file to....
0
 
AdnanAuthor Commented:
in my case this is the correct solution.....
 try
                    {
                        if ((file.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly)
                        {
                            file.MoveTo(toPath);
                        }
                        else
                        {
                            MessageBox.Show(GetValue("couldntMoveFile") + fileName + GetValue("madeacopyinstead"), GetValue("warning"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            file.CopyTo(toPath);
                        }
                    }
                    catch(Exception ex)
                    {
                        MessageBox.Show(GetValue("couldtnfindthepath"), GetValue("warning"), MessageBoxButtons.OK, MessageBoxIcon.Warning);    
                    }

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now