System.ArgumentException:路径中的非法字符.错误

use*_*293 2 c# excel

我从以下代码获取ArgumentException:

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

我在Stack Overflow上找到了这段代码.链接:// C#:将受保护的工作表复制到另一个excel文件 我不确切知道它是什么.请告诉我它是什么.这段代码我正在构建一个exe.

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

我做错了什么?我在服务器中部署它.

Sam*_*ica 6

这个代码看起来是做什么的,它会得到你的工作目录(exe与你的代码相关的任何地方),并将它与"C:\\somename.xls"它结合起来(这没有意义.)

我想你可能有类似的想法

string strPath=@"somename.xls";
Run Code Online (Sandbox Code Playgroud)

所以假设您正在运行您的应用程序

"C:\Users\owner\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug"
Run Code Online (Sandbox Code Playgroud)

那个代码会做什么设置filePath

"C:\Users\owner\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Debug\somename.xls"
Run Code Online (Sandbox Code Playgroud)

我看到的第一件事就是

string filePath="C:\somename.xls";
Run Code Online (Sandbox Code Playgroud)

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

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

string filePath="C:\\somename.xls";
Run Code Online (Sandbox Code Playgroud)

或者通过@在它前面放一个文字字符串.

string filePath=@"C:\somename.xls";
Run Code Online (Sandbox Code Playgroud)