关于删除、复制文件碰到的问题,大家请指教。
1、操作系统Xp professional sp3 英文版
开发环境 VS 2008 sp1 英文版
开发C/S程序
2、下面是删除文件的函数:
/// <summary>
/// Remove file
/// </summary>
/// <param name="fileName">file name</param>
/// <returns>success return true, fail return false</returns>
public static bool RemoveFile(string fileName)
{
try
{
if (File.Exists(fileName) && SetFileAttribute(fileName, FileAttributes.Normal))
{
//FileInfo file = new FileInfo(fileName);
//file.Open(FileMode.Truncate);
//file.Delete();
//file = null;
File.Delete(fileName);
}
else
return false;
}
catch(IOException ex)
{
_log.Error("RemoveFile Error. FileName<" + fileName + ">");
_log.Error(ex.Message, ex);
return false;
}
return true;
}
3、设置文件属性的函数:
public static bool SetFileAttribute(string fileName, FileAttributes at)
{
try
{
if(File.GetAttributes(fileName) != at)
File.SetAttributes(fileName, at);
}
catch (Exception ex)
{
_log.Error("Set FileAttribute Error. FileName<" + fileName + ">");
_log.Error(ex.Message, ex);
return false;
}
return true;
}
4、页面里面的代码:
通过对话框选择文件,然后将文件复制到另外一个目录下,复制之前,删除原来的文件,然后显示,多次操作有,发现一个现象,
if (File.Exists(path))
IOHelper.RemoveFile(path);
上面2行代码执行后,发现文件没有删除成功,旧文件还在目标目录下存在,
if(File.Exists(path))
File.Copy(file, path, true);
执行到上面2行代码,就会弹出错误信息:file is denied.
然后退出程序,发现目标目录下,旧文件自己消失了,这是为什么呢?你们碰到做这样的问题么。
可能我描述的还不够详细,有不清楚的回帖我们讨论。