代码之家  ›  专栏  ›  技术社区  ›  Developer

移动文件时,出现异常“参数不正确。\r\n”

  •  0
  • Developer  · 技术社区  · 14 年前

                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 回复  |  直到 14 年前
        1
  •  1
  •   Adam Lear    14 年前

    Path 而不是上课。查看MSDN页面以了解 File.Move C:\Blah\myFile.txt ).

    如果用户在“文件夹浏览器”对话框中选择了他们没有写入权限的文件夹,则可能会出现“拒绝访问”错误消息。这是您必须在代码中处理的一个场景,可能需要捕获 UnauthorizedAccessException

    更新:目标文件也应该指向一个文件名。所以你需要这样做:

    var origFileName = Path.GetFileName(strPath);
    strNewpath = Path.Combine(folderborwser1.SelectedPath, origFileName);
    File.Move(strPath, strNewpath);
    
        2
  •  0
  •   Justin Niessner    14 年前

    在运行时看不到应用程序中使用的值,我猜 tvwACH.SelecteNode.ToString() strOrgpath.Substring(10) 不是有效的文件系统路径。

    您应该调试您的应用程序,并设置一个断点来查看这些值是什么(如果此时您的问题不明显,则发布它们)。