3

假设我想从网络上运行一个 exe,显然我宁愿将它下载到一个临时文件夹中......从那里运行它,然后删除它(或让操作系统这样做)。是否有任何约定如何做到这一点,同时确保不要轰炸权限问题,覆盖现有文件等?

谢谢。

编辑我从桌面应用程序。顺便说一句,我确实有很多猜测,但我只是想知道什么被接受。

我知道我可以使用Path.GetTempFile,但是它已经为我制作了文件,这让我认为它也可以将它添加到某个数据库中,并跟踪它 - 所以我不能删除它并用我自己的文件替换它.

我知道我也可以使用Path.TempDirectory(或类似的东西)和Path.RandomFileName,但后者在文件名中添加了一个随机扩展名,而我需要 exe,显然这也可以很容易地解决,但对我来说重写似乎很奇怪那位女士已经尝试为我们写信了。

4

4 回答 4

3

我需要编写一个自我更新的 Windows 服务,并且发现自己处于类似的境地,我需要在执行之前将最新的安装程序下载到临时位置。没有太多关于该领域最佳实践的信息,因此我依赖于 ASP.NET/C# 提供的“工具”。

我使用 Path.GetTempPath() 和下载的文件名为下载的文件构建了完整路径。这是一些示例代码:

string url = "http://www.domain.com/install.exe";
string path = Path.GetTempPath();
string fileName = Path.GetFileName(url);
string tmpFile = Path.Combine(path, fileName);

最重要的是,我认为您使用 System.IO.Path Temp* 函数的猜测是一种合理的方法——即使我找不到任何支持它的文档。

于 2009-10-19T22:34:54.607 回答
0

受信任的小程序可以使用用户的文件系统,所以你可以走这条路。您正在寻求 C# 建议,但如果语言灵活,这将适用于 Java 世界。

于 2009-10-19T18:41:08.580 回答
0

You could look into Isolated Storage.

于 2009-10-19T18:48:23.370 回答
0

你看过ClickOnce 部署吗?

于 2009-10-19T19:16:14.963 回答