编辑:在哪里以及如何下载临时文件?

时间:2009-10-19 18:33:40

标签: c# temporary-files

说我想从网上运行一个exe,很明显我宁愿把它下载到临时文件夹..从那里运行它,并删除它(或者让操作系统这样做)。是否有任何约定如何做到这一点,同时确保不会炸弹到权限问题,覆盖存在的文件等?

感谢。

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

我知道我可以使用Path.GetTempFile,但之后它已经为我制作了文件,这让我觉得它也可以将它添加到某个数据库,并跟踪它 - 所以我无法删除它并用我自己的文件替换它。

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

4 个答案:

答案 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吗?