使用后C#删除文件

时间:2012-11-01 02:33:23

标签: c#

我正在尝试在做一些工作后删除C#中的文件,但是它不能像其他进程一样使用该文件发出错误,我怎么能做任何一个有任何想法呢?

2 个答案:

答案 0 :(得分:7)

确保在使用完文件后关闭该文件。如果另一个进程打开它,则跟踪句柄以查看发生了什么(Process Explorer对此有利)。

如果您在using语句中打开文件,则在块结束时会发生这种情况。否则,请确保在再次打开之前在流上调用Dispose()

using(var fs = File.Open(path))
using(var reader = new StreamReader(fs))
{
    // do stuff with the file
}   // Dispose() is called here which closes the file as well

try
{
    // should work now
    File.Delete(path);
}
catch(SomeException ex)
{
    // just in case, do something
}

答案 1 :(得分:0)

我正在使用像

这样的代码
        DirectoryInfo DI = new DirectoryInfo(@"D:\TimeQImages\");
        if (DI.Exists)
        {
            progressBar1.Value = 0;
            FileInfo[] fi = DI.GetFiles();
            int size = fi.Length;
            if (size < 100)
            {
                size = 100 / size;
            }
            else
            {
                size = (int)(size / 100);
            }
            foreach (FileInfo f in fi)
            {
                progressBar1.Value += size;
                ConvertToChunks(f.FullName);                     
                f.Delete();
            }
            MessageBox.Show("Transfer completed");
        }

这里我没有在文件信息上获得任何处理功能