【问题标题】:Use the standard "overwrite" dialog with custom information使用带有自定义信息的标准“覆盖”对话框
【发布时间】:2013-08-19 06:26:06
【问题描述】:

我正在编写一个实用程序将文件复制到远程驱动器(例如 SkyDrive)。当我要覆盖一个文件时,我会弹出一个常规的“文件存在,是否要覆盖 Y/N”消息框;是否可以改用标准的 Windows 文件覆盖对话框?使用三个选项(复制和替换、不复制、复制但保留两者)和更详细的大小/日期信息?还是我应该写自己的表格来复制它? (说实话,我已经找了两天了,自己写可能会快得多。)

澄清一下:我需要在选择时显示该对话框 - 有时我不想显示它而只想覆盖文件。

如果可能的话,我希望它在 C# / .NET 中工作;但是,如果仅存在非托管解决方案,我也会采用。

【问题讨论】:

    标签: c# windows user-interface standard-library


    【解决方案1】:

    是的,这是可能的!我这样做是为了Send to Dropbox 一个我为资源管理器编写的小插件实用程序,用于右键单击并将文件发送到保管箱文件夹。

    SHFileOperation.cs复制到你的项目中,你可以像这样调用它:

    ShellFileOperation.CopyItems(source, target);
    

    source 可以有多个文件/目录。每个项目都必须用引号 (") 括起来。

    target 是目标目录。

    例子:

    ShellFileOperation.CopyItems("\"c:\\foo.txt\" \"c:\\bar.txt\"", "d:\\xyz");
    

    【讨论】:

    • 不幸的是,这不起作用 - 我已经处理好了复制部分(而且我不能轻易替换它)。我只需要显示那个覆盖对话框并填写我自己的信息(不会自动从 FileInfo 对象或任何东西中读取)。
    • 这太好了,谢谢!运行良好,没有任何问题!
    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    相关资源
    最近更新 更多