jacklikeaccp 2022-08-25 03:40 采纳率: 0%
浏览 12

.net Winform文件 复制文件不一致的问题

winform程序 使用File.Copy文件复制文件,进行比对时发现两个文件不一致(上传的ini格式和.key格式文件)。
问题相关代码,请勿粘贴截图

OpenFileDialog openFileDialogTemp = new OpenFileDialog();
openFileDialogTemp.Title = "选择要上传的文件";
const string imgExts = "文件 (.ini;.key)|.ini;.key";
openFileDialogTemp.Filter = imgExts;//可选择的文件格式 (|之前为显示,之后为控制后缀显示)
openFileDialogTemp.Multiselect = true;//多选设置
openFileDialogTemp.RestoreDirectory = true;
openFileDialogTemp.FilterIndex = 1;
if (openFileDialogTemp.ShowDialog() == DialogResult.OK)
{
if (openFileDialogTemp.FileNames.Count() > 0)
{
if (!Directory.Exists(Application.StartupPath + "\license\"))
{
Directory.CreateDirectory(Application.StartupPath + "\license\");
}
string fileMsg = "";
for (int i = 0; i < openFileDialogTemp.FileNames.Count(); i++)
{
//判断文件是否被占用
IntPtr vHandle = _lopen(openFileDialogTemp.FileNames[i], OF_READWRITE | OF_SHARE_DENY_NONE);
if (vHandle == HFILE_ERROR)
{
fileMsg += openFileDialogTemp.FileNames[i] + "文件被占用,请关闭后进行上传\n";
}
else
{
try
{
//var savePath = Path.Combine(targetDir, Path.GetFileName(item));
File.Copy(openFileDialogTemp.FileName, Application.StartupPath + "\license\" + Path.GetFileName(openFileDialogTemp.FileNames[i]));

                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("请确认文件" + openFileDialogTemp.FileNames[i] + "是否已存在于安装目录下");
                            LogHelper.Error(ex.ToString());
                            return;
                        }
                    }
                    CloseHandle(vHandle);
                }
                if (fileMsg.Length > 0)
                {
                    MessageBox.Show(fileMsg);
                }
            }
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
            
运行结果及报错内容

不报错,但是复制的文件不一致

我想要达到的结果

做文件比对,两个文件要完全一致。

展开全部

  • 写回答

1条回答 默认 最新

  • 於黾 2022-08-25 03:46
    关注

    你应该使用File.Copy带三个参数的重载
    第三个参数overwrite要填写true
    否则同名文件不覆盖
    你在反复测试时已经复制过一个文件
    下次不再复制了,当然就不一样了

    评论
    编辑
    预览

    报告相同问题?

    问题事件

    • 创建了问题 8月25日

    悬赏问题

    • ¥15 pycharm倒入虚拟环境的时候,显示这个,但是我的虚拟环境已经创建了
    • ¥15 FPGA芯片60进制计数器
    • ¥15 前端js怎么实现word的.doc后缀文件在线预览
    • ¥20 macmin m 4连接iPad
    • ¥15 DBIF_REPO_SQL_ERROR
    • ¥15 根据历年月数据,用Stata预测未来六个月汇率
    • ¥15 DevEco studio开发工具 真机联调找不到手机设备
    • ¥15 请教前后端分离的问题
    • ¥100 冷钱包突然失效,急寻解决方案
    • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部