Получение исключения как «Параметр неверен. \ R \ n» при перемещении файла - PullRequest
0 голосов
/ 20 сентября 2010

Я написал код для перемещения файла следующим образом

            private void Move_Click(object sender, EventArgs e)
    {
        string strOrgpath = string.Empty, strNewpath = string.Empty;
        strOrgpath = tvwACH.SelectedNode.ToString();
        string strPath = strOrgpath.Substring(10);
        FolderBrowserDialog folderborwser1 = new FolderBrowserDialog();

       if (folderborwser1.ShowDialog() == DialogResult.OK)
        {
            try
            {
                strNewpath = folderborwser1.SelectedPath;
                File.Move(strPath, strNewpath);
            }
            catch (Exception ex)
            {

            }
        }

    }

Но я получаю исключение, как я упоминал, любой может сказать, почему, и иногда я получаю ошибку, поскольку доступ к пути запрещен

Ответы [ 2 ]

1 голос
/ 20 сентября 2010

Убедитесь, что ваш вызов подстроки возвращает правильный результат.Если возможно, используйте вместо этого статические методы из класса Path.Посмотрите на страницу MSDN для File.Move и обратите внимание на ожидаемые параметры - вы должны предоставить два действительных полных имени файла (например, C:\Blah\myFile.txt).

"Доступ«Отклонено» может появиться сообщение об ошибке, если пользователь выбирает папку, к которой у него нет прав записи, в диалоговом окне браузера папок.Это сценарий, который вы должны обработать в своем коде, возможно, перехватывая обновление UnauthorizedAccessException.

: файл назначения также должен указывать на имя файла.Поэтому вам нужно сделать что-то вроде этого:

var origFileName = Path.GetFileName(strPath);
strNewpath = Path.Combine(folderborwser1.SelectedPath, origFileName);
File.Move(strPath, strNewpath);
0 голосов
/ 20 сентября 2010

Не видя значений, которые используются в вашем приложении во время выполнения, я предполагаю, что tvwACH.SelecteNode.ToString() или strOrgpath.Substring(10) не является допустимым путем к файловой системе.

Вам следует отладить приложение иустановите точку останова, чтобы увидеть, что это за значения (и опубликуйте их, если неясно, в чем ваша проблема на тот момент).

...