我做的是多线程windows服务程序,在线程方法中先遍历语音文件,判断语音文件是不是符合格式标准,如果符合,就调用方法转换,然后把转换好的文件放到指定好的路径下;如果不符合,就把原文件原封不动的复制到目标文件夹下,并删除原文件(因为线程方法执行完一次遍历后sleep一段时间,再继续执行遍历文件的,所以要保证转换完的文件要删除),转换后文件让我删,可是不转换的文件就不让我移动,提示如题的错误“另一个进程正在使用此文件,因此该进程无法访问此文件。”
代码:
try
{
inputFileFormat = audioConverter.CheckSoundFormat(filename);//判断格式,确认已关闭流
isFormat = true;
}
catch(Exception ex)
{
isFormat = false;
}
if (isFormat == false)
{
string pFromPath = inputFile;
string pToPath = outputFile;
File.Delete(pToPath);
File.Move(pFromPath, pToPath);
//File.Copy(pFromPath, pToPath);
//File.Delete(inputFile);
}
else
{
//转换方法调用
}
无论是复制还是移动,都提示一样的错误,经过我排查,好像是因为服务在使用这个文件,我手动删除文件,也不让我删,当我把服务停掉,就让我删了,不知道这样的问题得怎么解决?
代码:
try
{
inputFileFormat = audioConverter.CheckSoundFormat(filename);//判断格式,确认已关闭流
isFormat = true;
}
catch(Exception ex)
{
isFormat = false;
}
if (isFormat == false)
{
string pFromPath = inputFile;
string pToPath = outputFile;
File.Delete(pToPath);
File.Move(pFromPath, pToPath);
//File.Copy(pFromPath, pToPath);
//File.Delete(inputFile);
}
else
{
//转换方法调用
}
无论是复制还是移动,都提示一样的错误,经过我排查,好像是因为服务在使用这个文件,我手动删除文件,也不让我删,当我把服务停掉,就让我删了,不知道这样的问题得怎么解决?
{
try
{
}
catch
{
sleep(0000);
//有的时候你释放了,可能你的杀毒软件或者其他一些东西在使用,重复执行几次吧
函数();
}
}
if (!File.Exists(dPath))
f.MoveTo(dPath);FileStream fs= new FileStream("",FileMode.Create);
try
{
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
fs.Close();}