未从所选目录运行的文件
Posted
技术标签:
【中文标题】未从所选目录运行的文件【英文标题】:Files not running from the directory chosen 【发布时间】:2021-11-27 02:24:40 【问题描述】:我运行我的程序,它运行良好。我正在使用外部批处理和 VBS 文件但是如果这些文件不在我的主 C:\ 目录中,那么它根本不起作用!我得到一个找不到指定的文件,所以如何我可以确保我的文件在我的程序每次安装的目录中运行 C:\Program Files (x86) \ 然后它当然会创建一个程序文件夹。
我使用的代码示例来自本网站的另一个论坛。
Process scriptProc = new Process();
scriptProc.StartInfo.FileName = @"Services.bat";
scriptProc.StartInfo.WorkingDirectory = @"c:\Program Files (x86)\Buzzard X Soy Optimzation Program\"; //<---very important
scriptProc.StartInfo.Arguments = "//B //Nologo Services.bat";
scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //prevent console window from popping up
scriptProc.Start();
scriptProc.WaitForExit();
scriptProc.Close();
【问题讨论】:
您是直接从C:\>
运行代码吗?如果是这样,那么这就是scriptProc.StartInfo.FileName
正在寻找的地方,而不是其他目录
不,那只是出于某种原因它在哪里工作
你是如何运行代码的呢?来自 CMD?
嗯是和否按钮是在 VS 中编译的,但批处理文件通过 CMD 运行是的。但由于某种原因,它只有在文件直接位于 C: 和 C: 时才有效:只有没有子文件夹我也是代码和 C# 的新手。
【参考方案1】:
您可以使用Environment.CurrentDirectory 获取运行您的可执行文件的目录,并使用navigate to the desired folder 相对于您的起始路径。
由于您遇到的确切问题,您实际上不应该在代码中放置绝对路径。
【讨论】:
如果您不介意,我可以举个例子吗?以及如何应用它?我是 C# 新手 @Buzzard 当然。如果您给我一些输入,我可以向您展示如何使用您的代码来执行此操作。在您编写的代码的正上方写下这个var path = Environment.CurrentDirectory
。在那之后放一个断点,让我知道路径是什么。
我这样做了,你想让我运行它吗?
它似乎可能确实有效.. 让我构建它 rq 如果它确实有效,但非常感谢
@Buzzard 欢迎您。如果我的回答为您解决了问题,请点赞并将其选为最佳答案以上是关于未从所选目录运行的文件的主要内容,如果未能解决你的问题,请参考以下文章