我从以下代码获取ArgumentException:
string strPath="C:\somename.xls";
startPath=System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
filePath = System.IO.Path.Combine(startPath, strPath);
我在堆栈溢出中找到了此代码。
关联:
C#:Copy protected worksheet to another excel file
我不知道这是什么。请告诉我这是什么。我正在将此代码构建为exe。
最后,我需要将一个工作表复制到另一个文件。
我在做什么错?我将其部署在服务器中。
最佳答案
该代码似乎在做什么,它是获取您的工作目录(与代码相关联的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";
关于c# - System.ArgumentException : Illegal characters in path.错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15368908/