我需要将.zip文件位置传递到下面的c#代码中的files
参数中。
如果文件名不包含空格,一切正常。但是,如果文件名为DOES CONTAIN空格,则抛出错误。
找不到档案
以下是我的代码:任何人都可以建议我如何解决这个问题?
static void UnzipToFolder(string zipPath, string extractPath, string[] files)
{
string zipLocation = ConfigurationManager.AppSettings["zipLocation"];
foreach (string file in files)
{
string sourceFileName = string.Empty;
string destinationPath = string.Empty;
var name = Path.GetFileNameWithoutExtension(file);
sourceFileName = Path.Combine(zipPath, file);
destinationPath = Path.Combine(extractPath, name);
var processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = zipLocation;
processStartInfo.Arguments = @"x " + sourceFileName + " -o" + destinationPath;
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
var process = Process.Start(processStartInfo);
process.WaitForExit();
}
}
在文件路径周围添加引号:
processStartInfo.Arguments = "x \"" + sourceFileName + "\" -o \"" + destinationPath + "\"";
或者为了便于阅读(使用C#6):
processStartInfo.Arguments = $"x \"{sourceFileName}\" -o \"{destinationPath}\"";
必须引用包含空格的所有文件名和路径。
接下来,关于你的问题,如何说明如下路径:
7z a -tzip C:\ abc \ zipfilename C:\“Program files”\ DirectoryOrFile