【发布时间】:2011-03-20 10:34:06
【问题描述】:
我正在开发一个应用程序,它需要删除一个文件,无论它是否被其他进程使用
考虑下面的 sn-p 代码。
using System;
using System.IO;
namespace DotNet_Concepts.File_Operation
{
class Deleting_File_Which_Is_In_Use
{
static void Main(string[] args)
{
StreamReader lclFileStream = null;
string lclFileName=string.Empty;
try
{
lclFileName=@"E:\Visual Studio 2008 Projects\DotNet Concepts\DotNet Concepts\Local Files\Garbage.txt";
if (File.Exists(lclFileName))
{
lclFileStream = new StreamReader(lclFileName);
if (lclFileStream != null)
{
//Doing some operation
}
//Deleting the file before closing the stream
File.Delete(lclFileName);
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.StackTrace);
}
Console.ReadLine();
}
}
}
我正在删除同一进程使用的文件。是否可以删除文件
谢谢, 阿米特·沙阿
【问题讨论】:
-
但文件正在使用中。那为什么要删除呢?
-
从你的问题中不清楚,如果你想关闭你打开的文件。如果是这种情况,请使用 Ed Swangren 的建议。
-
在关闭流之前删除文件的目的是什么?如果为了争论你找到了在关闭流之前删除文件的方法,那么在文件被删除之后流对你有什么用?
-
以上代码仅用于显示错误。我有一个使用 wav 文件的托管 swf 文件。我有一个后端应用程序,它修改了 swf 正在使用的同一个波形文件。我希望在 swf 中呈现更新后的 wave。而唯一的办法就是替换现有文件