【问题标题】:System.ArgumentException: Illegal characters in path. errorSystem.ArgumentException:路径中有非法字符。错误
【发布时间】:2013-03-12 18:12:21
【问题描述】:

我从以下代码中得到一个 ArgumentException:

string strPath="C:\somename.xls";
startPath=System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
filePath = System.IO.Path.Combine(startPath, strPath);

我在 Stack Overflow 上找到了这段代码。 关联: C#:Copy protected worksheet to another excel file 我不完全知道它是什么。请告诉我它是什么。我正在将这段代码构建到一个 exe 中。

最后,我需要将一个工作表复制到另一个文件。

我在做什么错?我将它部署在服务器中。

【问题讨论】:

  • C# 规范String literals。对了,为什么要把字符串filePath初始化两次呢?
  • 您将文字字符串分配给filePath,然后用Path.Combine 的结果覆盖它。你从哪里得到strPath
  • 另外,您在 Stack Overflow 上的哪个位置获得此代码?你能喜欢这个问题/答案吗?这可能有助于我们更好地理解上下文。
  • 抱歉出现大错误。又编辑了我的帖子。请查看。
  • @user2144293 同样,尽量避免徒手复制您的代码。如果你做错了,你会得到不正确的反馈。尝试使用复制/粘贴

标签: c# excel


【解决方案1】:

该代码的作用是获取您的工作目录(无论与您的代码关联的exe 在哪里),并将其与"C:\\somename.xls" 结合起来(这没有意义。)

我想你可能打算这样做

string strPath=@"somename.xls";

所以假设您正在从

运行您的应用程序
"C:\Users\owner\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug"

该代码的作用是将filePath 设置为

"C:\Users\owner\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\somename.xls"

我看到的第一件事是

string filePath="C:\somename.xls";

\ 是一个特殊字符,用于确定其他字符。例如'\n' 是换行符。 '\\' 是实际的反斜杠。

所以,你想用另一个\ 逃避你的\

string filePath="C:\\somename.xls";

或通过在其前面放置 @ 使其成为文字字符串。

string filePath=@"C:\somename.xls";

【讨论】:

    【解决方案2】:

    你的代码应该是:

    string filePath = "C:\\somename.xls"
    

    你需要双反斜杠。

    【讨论】:

      【解决方案3】:

      代码有两个问题,

      第一

      string filePath="C:\somename.xls";
      

      \ 是一个特殊字符,用于判断其他字符。例如'\n' 是换行符。 '\\' 是实际的反斜杠。

      第二

      filePath 包含一个根路径 C:\\Path.Combine 将只返回filePath,则无法合并。

      【讨论】:

        【解决方案4】:

        您的主要问题在于startPath 参数。

        System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
        

        如果你跟踪你的代码,在FileName你会看到一个坏的符号字符女巫是非法的

        【讨论】:

          猜你喜欢
          • 2010-09-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-07
          • 2015-12-23
          相关资源
          最近更新 更多