2010-06-25 51 views
0

我使用fileupload控件将.msi文件上传到中央位置。现在我需要获取此文件的版本信息。我正在使用下面的代码。在c中获取补丁文件的版本信息#

FileVersionInfo patchFile = FileVersionInfo.GetVersionInfo(completeFilePath) 

completeFilePath是上传文件的完整路径。这段代码打破和抛出文件没有发现异常。但是,如果我往下看物理目录,文件就存在那里。

我是否错过了一些东西,或者我将不得不再次下载这个上传的文件到一些临时位置,然后从这个文件中提取版本信息。

我的第二个选择是在上传文件之前获取版本信息。在这种情况下,我无法获得此修补程序文件的完整路径,因为fileupload控件只是给出fileName而不是完整的位置。

请建议如何继续。

回答

0

我认为这个问题是在如何界定“completeFilePath”

请记住,如果completeFilePath是一个非文本字符串,那么你必须躲避特殊字符。 例如:[string filePath = "C:\\Windows\\FolderName\\FileName.txt";] (注意转义字符()

另一种选择是使用文本字符串,使您可以使用特殊字符,而不必使用转义字符的一个例子是:

[string filePath = @""C:\Windows\FolderName\FileName.txt"";] 

如果仍然不工作,那么你可以请发表你如何输入这个

+0

这是怎么出现在quickwatch.completeFilePath = d:\测试\ NUnit_b2e5d79c-7512-40ad-BCB6-f0b16fe9f7b8.msi。这个文件存在于这个位置。 – Rohit 2010-06-25 13:39:02

+0

@Rohit:它似乎我说我发布的答案是正确的。 “FileVersionInfo.GetVersionInfo”除了一个字符串参数。 quickWatch.completeFilePath是一个字符串,但您需要在另一个临时字符串中修改特殊字符('\'),并将临时字符串传递给“FileVersionInfo.GetVersionInfo”方法。 – VoodooChild 2010-06-25 13:44:22