我使用Visual Studio在C#中开发了程序,并在Debug文件夹中生成了.exe文件。我还在Properties->中添加了命令行参数。调试。
传递的参数是D:\ Example \ bin \ Release \ Input_Files \ D:\ Example \ bin \ Debug \ trycc.css 900 640
通过将解决方案配置标记为Debug来运行此解决方案,它会在Debug文件夹中生成.exe文件。
当我尝试从命令行运行时,它告诉,无法打开一些与.exe相同级别的文件。
D:\>D:\Example\bin\Debug\Example.exe D:\Example\bin\Release\Input_Files\ D:\Example\bin\Debug\trycc.css 900 640
我不明白我哪里出错了。请帮助。
这是:
D:\>D:\Example\bin\Debug\DFu1.exe "D:\Example\bin\Release\I
nput_Files\" "D:\Example\bin\Release\Input_Files\css\screen.css" "900
" "830"
Incomplete Arguments entered.
Press any key to continue
Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part
of the path 'C:\Out\elogs.txt'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I
nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o
ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at ExampleParser.Program.Main(String[] args) in D:\Example\Program.cs:l
ine 691
答案 0 :(得分:0)
可能是你的问题是错误的报价。试着传递这个论点:
"D:\\Example\\bin\\Release\\Input_Files\\" "D:\\Example\\bin\\Debug\\trycc.css" 900 640
或者:
"D:\Example\bin\Release\Input_Files\" "D:\Example\bin\Debug\trycc.css" 900 640
答案 1 :(得分:0)
看来你正在引用一个不存在的目录(文件夹)D:\Out'
,如果它是正确的目录,首先要确保dir存在。如果不是,则应用程序可能正在使用相对路径(例如..\SomeDir\
)而不是绝对路径,因此代码需要更改以正确定位此目录。一个简单但快速的方法来证明应用程序的工作原理是首先进入它所在的目录并从该路径运行exe:
cd D:\Example\bin\Debug
Example.exe D:\Example\bin\Release\Input_Files\ D:\Example\bin\Debug\trycc.css 900 640
如果您实际上有相对路径,请记住,如果应用程序(.exe)位于D:\Example\bin\Debug
并且您有一个目录D:\Example\bin\Out
并且代码尝试读取/写入“Out” dir使用..\Out
,如果应用程序直接从 \ bin \ Debug 运行,它将会成功。但是,如果您从D:\MyOtherDir\Test
运行应用程序(是的,即使您传入完整路径 D:\ Example \ bin \ Debug \ Example.exe ),它也将解析为 D:\ MyOtherDir \ Out ,相对路径基于当前工作目录,而不是exe所在的位置。