none
File.Copy的问题 RRS feed

  • 问题

  • File.Copy(source, destfiilename, true);

    这是最基本的文件复制功能,在绝大多数机器上,都是正常的,但奇怪的是,在某台win7上,开始正常,使用一段时间后,居然出现了问题

    明明是Copy方法,但实际使用中变成了Move方法,即我的源文件,在复制过去后,源文件就不见了!复制变成了移动,导致我的程序出错了

    想请问一下各位,有谁碰到过这样奇葩的问题么?我把原来的4.5框架删了,重装了4.0框架,仍然是这样

    我也试了用文件流拷贝的方式,结果居然是一样的!

    以下是文件流拷贝方式的代码

    static void CopyFile(string path, string excutepath)
            {
                using (var fin = new FileStream(path, FileMode.Open))
                {
                    using (var fout = new FileStream(excutepath, FileMode.Create))
                    {
                        int i = 0;
                        do
                        {
                            i = fin.ReadByte();
                            fout.WriteByte((byte)i);
                        } while (i != -1);
                    }
                }
            }  

    各位,有谁碰到过这们的问题么?

    2014年5月28日 7:53

答案

  • 你好,

    现在我们重点放在如何去还原这个问题。建议采用这样一个思路。

    1.客户当前的操作系统与你的是否一致(操作系统版本,家庭版/专业版/旗舰版;当前补丁是否一致,可以在控制面板中查看已经安装的补丁;.NET的版本号,这里包括小版本号,就像我们知道的一样,同样是.NET Framework 4.5,如果升级一些补丁后,他的小版本号是不一样的。http://msdn.microsoft.com/zh-cn/library/hh925568(v=vs.110).aspx

    2.如果上述都一致,进入第二步。从你的描述中这个程序开始时是正常的,运行一段时间后出了问题。因为我们不清楚客户进行了哪些操作。建议将用户的操作进行录制,然后在本地按照客户的操作进行还原。看能否还原出当前问题。例如Visual Studio Test Manager 可以进行录屏操作。http://msdn.microsoft.com/zh-CN/library/dd286596.aspx 或者其他录屏软件。

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 n10z 2014年5月30日 5:48
    2014年5月30日 2:51
    版主

全部回复

  • 你好,

    这个情况只发生在一台Win7PC上,我认为这个应该不是.NET Framework的问题。我建议你这样来操作一下,从你需要的文件夹下拷贝文件,看是否存在拷贝直接变为剪切的情况。安装在其他PC上的相同程序运行一段时间后都正常吗?如果这个是可还原的话,我建议你在其他PC上执行相同的步骤,看能否重现。我更偏向于这是一个系统问题。

    我查阅了内部的Bug系统,在.NET 4/4.5平台上这个类库是OK的。

    如果这个问题能够复现,建议提供一个可还原的Sample。可以上传至SkyDrive或者其他可下载的地方。共享下载地址即可。

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年5月29日 7:54
    版主
  • .NET Framework已经重装过了,仍然是这样,任何文件夹下用File.Copy都是剪切而非拷贝

    我是这样做试验的,新建一个WPF工程,只放一个按钮,点击执行File.Copy操作,仍然无法拷贝,源文件仍然会丢失,即使它们不在同一个目录下.

    现在在这台PC上,所有的File.Copy方法都是剪切了,但同相同硬件配置,同一个光盘安装的另一台机器则完全正常,并且我试了不止一台机器,只有这一台有问题

    我不知道该如何提供一个Sample,做一个硬盘镜象吗?如果需要,我可以去做一个,但如何才能在我的开发机器上还原呢?

    我感觉也是系统问题,或许打几个系统补丁可以解决这个问题,但我的疑问是,微软的系统与自己的开发语言居然还会有这么低级的错误?碰到这样的问题,我甚至无法跟客户解释为什么会这样...

    2014年5月29日 13:52
  • 你好,

    现在我们重点放在如何去还原这个问题。建议采用这样一个思路。

    1.客户当前的操作系统与你的是否一致(操作系统版本,家庭版/专业版/旗舰版;当前补丁是否一致,可以在控制面板中查看已经安装的补丁;.NET的版本号,这里包括小版本号,就像我们知道的一样,同样是.NET Framework 4.5,如果升级一些补丁后,他的小版本号是不一样的。http://msdn.microsoft.com/zh-cn/library/hh925568(v=vs.110).aspx

    2.如果上述都一致,进入第二步。从你的描述中这个程序开始时是正常的,运行一段时间后出了问题。因为我们不清楚客户进行了哪些操作。建议将用户的操作进行录制,然后在本地按照客户的操作进行还原。看能否还原出当前问题。例如Visual Studio Test Manager 可以进行录屏操作。http://msdn.microsoft.com/zh-CN/library/dd286596.aspx 或者其他录屏软件。

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 n10z 2014年5月30日 5:48
    2014年5月30日 2:51
    版主
  • 客户现在急于使用软件,我没有办法,只有把系统自动更新打开,让它打补丁,补丁打完后,现在已经正常了

    再重新运行新建的WPF工程,也是正常的了

    感谢Jimmy Yang 的回复,再出现这样的问题时,我会照上述方法进行操作,看看究竟发生了什么

    2014年5月30日 5:48