C# 修改Application.StartupPath
我正在创建一个文件:C# 修改Application.StartupPath,c#,command-line,path,C#,Command Line,Path,我正在创建一个文件: String strPath = Application.StartupPath; .... string filePath = strPath + "\\Books" + ".zpl"; 稍后,该路径被发送到命令行以复制到Parralell端口(用于打印…) 我的问题是Application.StartupPath可能包含带空格的文件夹名称(例如:文档和设置)。 在这种情况下,我必须在文件夹名称上加引号。 但是Application.StartupPath=>在客户
String strPath = Application.StartupPath;
....
string filePath = strPath + "\\Books" + ".zpl";
稍后,该路径被发送到命令行以复制到Parralell端口(用于打印…)
我的问题是Application.StartupPath
可能包含带空格的文件夹名称(例如:文档和设置)。
在这种情况下,我必须在文件夹名称上加引号。
但是Application.StartupPath
=>在客户端安装程序后,将知道生成的地址路径,因此我不知道是否需要以及需要多少文件夹名quoting
有什么想法吗?即使不总是需要引用,也不要伤害=>始终使用它们 但您不应使用
Application.StartupPath
执行此类任务。您可以使用以下内容:
var dir = Path.Combine(Environment
.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyProgram");
if(!Directory.Exists(dir))
Directory.CreateDirectory(dir);
var path = Path.Combine(dir, "books.zpl");
在启动路径中,如果您不是管理员并且应用程序安装到“程序文件”中,您将没有写入权限。您建议使用什么?预定义路径?可能临时文件更适合您的情况,例如,不清楚String.IndexOf()为什么会减慢您的速度。否则就没有意义了,只是总是引用路径。
var dir = Path.Combine(Environment
.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyProgram");
if(!Directory.Exists(dir))
Directory.CreateDirectory(dir);
var path = Path.Combine(dir, "books.zpl");