Tag: 临时文件

C#最佳实践:编写“临时”文件以供下载:放在应用程序的环境文件夹或临时文件夹中

基本上,我想知道下载文件的下列问题是否有最佳实践,不仅仅是临时使用,而是最终将它们移动到应用程序文件夹。 我面临一些选择: //Option 1 – Random file String tempfile = Path.GetTempFileName(); WriteData(tempfile); File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename); //Option 2 – Temp Path + Random file name String tempfile = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); WriteData(tempfile); File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename); //Option 3 – Temp Path + real file name String tempfile = Path.Combine(Path.GetTempPath(), filename); WriteData(tempfile); File.Move(tempfile, Path.Combine(Environment.CurrentDirectory, filename); //Option 4 – Temp […]

使用带有临时文件名的WinSCP .NET / COM上传文件

我在C#中创建一个小型.NET应用程序,将文件上传到FTP服务器。 我正在使用.NET DLL for WinSCP,我一直试图找到一个很好的解决方案来解决我的问题。 我将放置所有文件的FTP文件夹将由另一个应用程序监视。 然后,此应用程序将采用这些文件并自动处理它们。 所以我想避免的是在传输完成之前我的文件被应用程序抓取。 所以我想使用临时文件名使用或可能是临时文件夹,然后在上传完成后移动文件。 你认为什么是最好的方法? 第二个问题是,在WinSCP .NET中,应该有一个Transfer Resume选项,它使用临时名称传输文件,并在完成时重命名。 但我似乎无法让这个工作,并正在寻找任何关于如何使这个工作的提示?

病毒扫描程序锁定和删除临时文件 – 处理它们的最佳方法是什么?

我的应用程序处理来自不同来源的电子邮件,例如Outlook和IMAP邮箱。 在解析它们之前,我将它们写入临时目录(将它们保留在内存中不是一个选项)。 在解析时,我可能正在写临时目录的附件(例如,如果它们太大而无法保留在内存中或用于全文提取)。 但在野外,有两件事情发生在一开始似乎很奇怪,但都可以追溯到病毒扫描程序的行为: 我有时无法打开几毫秒前我自己写过的文件。 它们显然被病毒扫描程序锁定,以确保它们是干净的。 我得到一个例外。 如果病毒扫描程序认为文件存在危险,则会在某个时间点将其删除。 为了应对这种行为,我写了一些方法,如果打开失败再次尝试,或者如果文件存在则进行一些检查,但是我无法在应用程序的每个部分使用它们(第三方代码,例如filter) ,所以事情变得更好,但不是100%完美,因为这个原因,我的源代码看起来很难看。 你如何应对病毒扫描程序?

返回FileStream后无法删除临时文件

我在C#MVC应用程序中有一个函数,它创建一个临时目录和一个临时文件,然后使用FileStream打开文件,将FileStream返回给调用函数,然后需要删除临时文件。 但是,我不知道如何删除临时目录和文件,因为它总是错误地说“进程无法访问该文件,因为它正被另一个进程使用”。 这是我尝试过的,但FileStream仍然使用finally块中的临时文件。 如何返回FileStream并删除临时文件? public FileStream DownloadProjectsZipFileStream() { Directory.CreateDirectory(_tempDirectory); // temporary file is created here _zipFile.Save(_tempDirectory + _tempFileName); try { FileStream stream = new FileStream(_tempDirectory + _tempFileName, FileMode.Open); return stream; } finally { File.Delete(_tempDirectory + _tempFileName); Directory.Delete(_tempDirectory); } } FileStream返回的函数如下所示: public ActionResult DownloadProjects () { ProjectDownloader projectDownloader = new ProjectDownloader(); FileStream stream = projectDownloader.DownloadProjectsZipFileStream(); return […]

Dispose()或Finalize()是否应该用于删除临时文件?

我有一个类,它在活动时使用临时文件( Path.GetTempFileName() )。 我想确保在关闭程序后这些文件不会留在用户的硬盘上占用空间。 现在我的类有一个Close()方法,它检查该类使用的任何临时文件是否仍然存在并删除它们。 将此代码放在Dispose()或Finalize()方法中会更有意义吗?

ASP.NET计划删除临时文件

问题:我有一个ASP.NET应用程序,可以创建临时PDF文件(供用户下载)。 现在,许多用户在很多天内都可以创建许多PDF,这需要占用大量磁盘空间。 安排删除超过1天/ 8小时的文件的最佳方法是什么? 最好是在asp.net应用程序本身…

删除关闭文件

使用的语言:C# 理论:我想在临时文件夹中创建一个带有FileOptions.DeleteOnClose标志的文件。 文件已成功创建,我将dato写入其中,下一步是启动与文件Process.Start(…)关联的应用程序,并允许用户检查文档,最后我关闭我的句柄,然后尽快其他进程关闭临时文件的句柄,该文件被操作系统删除。 我的问题是其他进程无法打开文件,即使是阅读,尽管我添加了FileShare.ReadWrite | FileShare.Delete到共享模式。 有什么建议?