player.URL = oldPath;
player.URL = newPath;
if(oldPath!=newPath)
{
  File.Copy(newPath,oldPath,true);
}
File.Copy(newPath,oldPath,true);这句报异常“文件oldPath正由另一进程使用,因此该进程无法访问该文件。”我是在win7下编译的,在XP下就没有这种问题,和mediaplayer版本有关系吗,请大家帮忙看下!

解决方案 »

  1.   

    oldPath路径下的文件被你打开了,正在运行,无法移动?
      

  2.   

    我正在播放的是newPath下的文件,如果说oldPath下的文件打开没有释放掉,那我又该怎么释放它呢?
      

  3.   

    我oldpath是路径呀,我觉得应该和系统有关系,我在xp下就能运行,win7下就有问题了。
      

  4.   

    win7下经常会出现“文件正在被使用,无法访问”的问题,xp下就没问题
      

  5.   

    应该不是,我在删除文件后写了个while循环,检测文件不存在之后,才把新文件拷贝过来,这个循环等待的时间有时很长有时很短,但是都能替换成功的,如果是权限不够的话那个循环应该是死循环了。
      

  6.   

    player.URL = oldPath;
    player.URL = newPath;
    if(oldPath!=newPath)
    {
      File.Copy(newPath,oldPath,true);
    }首先要确定copy之前 player知否还在播放oldpath。(在player.URL = newPath;之前可以player。url="";player.stop(); = = 操作。)如果确定已经是在播放newPath应该是不会存在文件还在使用的情况。
      

  7.   

    是使用的资源没有释放掉,我在拷贝文件之前先把源文件给删除掉,然后加个while循环语句,判断删除的文件是否存在,如果不存在的话再拷贝新文件。这样的话,就不会有异常出现,但是执行的时间有时候会长些。player.URL = oldPath;
    player.URL = newPath;if(oldPath!=newPath)
    {
      File.Delete(oldPath);
      while(true)
      {
         if(!File.Exists(oldPath))
         {
            break;
         }
      }
      File.Copy(newPath,oldPath,true);
    }
      

  8.   

    Win7操作系统对运行权限要求比较严格, 你试着以管理员身份运行程序. 看看是否是运行权限的问题.// C#程序在Win7中设置以管理员身份运行:
    为程序添加新建项, 选择 应用程序清单文件, 在 app.manifest 文件中设置属性如下:  
      <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />