说我想从网上运行一个exe,很明显我宁愿把它下载到临时文件夹..从那里运行它,并删除它(或者让操作系统这样做)。是否有任何约定如何做到这一点,同时确保不会炸弹到权限问题,覆盖存在的文件等?
感谢。
编辑我来自桌面应用程序。 顺便说一下,我确实有很多猜测,但我只是想知道接受了什么。
我知道我可以使用Path.GetTempFile
,但之后它已经为我制作了文件,这让我觉得它也可以将它添加到某个数据库,并跟踪它 - 所以我无法删除它并用我自己的文件替换它。
我知道我也可以使用Path.TempDirectory
(或类似的东西)和Path.RandomFileName
,但后者在文件名中添加了随机扩展名,而我需要exe,显然这可以很容易地解决同样,但对我来说,重写MS似乎已经试图为我们写的东西似乎很奇怪。
答案 0 :(得分: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 *函数的猜测是一种合理的方法 - 即使我找不到任何支持它的文档。
答案 1 :(得分:0)
受信任的applet可以与用户的文件系统一起玩,因此您可以使用该路径。您要求提供C#建议,但如果语言灵活,这可以在Java世界中使用。
答案 2 :(得分:0)
您可以查看Isolated Storage。
答案 3 :(得分:0)
你看过ClickOnce Deployment吗?