SHFileOperation函数使用的介绍

SHFileOperation函数使用的介绍今天看到一个关于SHFileOperation函数使用的介绍,发现下面一些有用的资料,都是些之前未仔细了解的方面,这里把他们记录下来,留待以后查阅参考。fFlags成员标志间的关系标志抑制的对话框相关性与优先级FOF_MULTIDESTFILES无无FOF_FILESONLY

大家好,又见面了,我是你们的朋友全栈君。

今天看到一个关于SHFileOperation函数使用的介绍,发现下面一些有用的资料,都是些之前未仔细了解的方面,这里把他们记录下来,留待以后查阅参考。

fFlags成员标志间的关系

标志

抑制的对话框

相关性与优先级

FOF_MULTIDESTFILES

FOF_FILESONLY

FOF_SILENT

如果设置,进度对话框不显示。

优先于FOF_SIMPLEPROGRESS标志。

FOF_SIMPLEPROGRESS

为FOF_SILENT标志所抑制。

FOF_RENAMEONCOLLISION

如果设置了这个标志,当被移动或拷贝的文件与已存在文件同名时置换对话框不会出现。

名字冲突时,如果FOF_NOCONFIRMATION标志设置,则操作继续。

如果二者都设置了,则它优先于FOF_NOCONFIRMATION。即,文件以给定的新名字复制,而不是覆盖。

FOF_NOCONFIRMATION

如果设置,确认对话框在任何情况下都不出现。

名字冲突时,引起文件覆盖,除非设置了FOF_RENAMEONCOLLISION标志。

FOF_NOCONFIRMMKDIR

抑制请求建立新文件夹的对话框

缺省目录作为严重错误产生一个错误消息框。

建立目录的确认对话框作为错误消息框是否显示依赖于FOF_NOERRORUI的设置。

FOF_NOERRORUI

抑制所有错误消息框。

优先于前一个标志。如果设置,则,缺省目录引起不被处理的异常,并且返回错误码。

 

删除文件

        文件删除是一个简单的操作,它仅仅影响到输入缓冲pFrom,而pTo缓冲被忽略。与文件复制一样,操作的详细情况依赖于标志的设置。相关的标志是:

 

标志

描述

FOF_SILENT

0×0004

这个操作不回馈给用户,就是说,不显示进度对话框。相关的消息框仍然显示。

FOF_NOCONFIRMATION

0×0010

这个标志使函数对任何遇到的消息框都自动回答Yes。

FOF_ALLOWUNDO

0×0040

如果设置,这个标志强迫函数移动被删除的文件到‘回收站’中。否则,文件将被物理地从磁盘上删除。

FOF_FILESONLY

0×0080

设置这个标志导致函数仅仅删除文件,跳过目录项。它仅仅应用于指定通配符的情况。

FOF_SIMPLEPROGRESS

0×0100

这导致简化用户界面。使之只有动画而不报告被删除的文件名。代之的是显示lpszProgressTitle成员中指定的文字。(Win7实际中貌似不可用)

FOF_NOERRORUI

0×0400

如果设置了这个标志,任何发生的错误都不能使消息框显示,而是程序中返回错误码。

 

        这里出现的标志最要紧的是FOF_ALLOWUNDO,它决定文件是否一次就全部删除,或存储到‘回收站’中等候可能的恢复。如果FOF_ALLOWUNDO被设置,文件则被移动到回收站,并且这个操作可以被Undo(尽管可以手动Undo)。Undo特征仅在删除下可用,在拷贝与移动中没有等价的操作。

SHFileOperation()函数的返回值

        MSDN资料中说明,SHFileOperation()在成功时返回0,失败时返回非0值。显然这是真的,但并不是最有用的解释。重复测试这个函数,可以确信它有非常多的终止方式。事实上,我们经常在系统错误的提示中运行,在有些地方这个函数只是简单地返回从更靠近文件系统的其它程序中获得的返回码。下面列表给出了SHFileOperation()返回的最通常的部分错误。

 

错误码

描述

2

如果你试图重命名多重文件,这个消息就会出现。描述是相当直接的:系统不能找到指定的文件。

7

在询问是否想要置换给定文件时,你回答了‘取消’,函数就返回这个错误码。它的描述也是相当的不明确—存储控制块被销毁

115

在试图重命名文件到不同的文件夹时,发生这个文件系统错。重命名文件只是改变文件名,而不能改变文件夹。

117

一个IOCTL错(输入/输出控制),在目的路径中有错误时或取消了新目录的建立时,这个错误发生了。

123

你正在试图重命名一个文件,然而你给出的名字是一个已经存在的文件。它也有一个无用的描述:文件名,目录名,或卷标号的语法是不正确的

1026

在试图移动或拷贝一个不存在的文件时,出现这个文件系统错。一般地,它提示了,源缓冲中的某些东西应该修改一下。这个错误码弹出一个的错误框,你可以通过设置FOF_NOERRORUI标志抑制它的显示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161005.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月18日 下午9:16
下一篇 2022年7月18日 下午9:16


相关推荐

  • mysql longtext查询慢_select中的longtext使查询速度极慢

    mysql longtext查询慢_select中的longtext使查询速度极慢我有一个结构如下的普通平台CREATETABLE`oc_pipeline_logging`(`id`INT(11)NOTNULLAUTO_INCREMENT,`source`TEXT,`comments`TEXT,`data`LONGTEXT,`query`TEXT,`date_added`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTA…

    2022年5月14日
    107
  • web前端大作业–响应式风景旅游网页设计(国庆旅游主题-HTML+CSS+JavaScript)实现

    web前端大作业–响应式风景旅游网页设计(国庆旅游主题-HTML+CSS+JavaScript)实现临近期末 你还在为 Java 毕业设计 HTML 网页设计结课作业 老师的作业要求感到头大 HTML 网页作业无从下手 网页要求的总数量太多 没有合适的模板 等等一系列问题 你想要解决的问题 在这里都能解决

    2026年3月26日
    1
  • 中国软件外包IT公司最新排名

    中国软件外包IT公司最新排名http://cnitcomments.com/companylist/topoutsourcing.htm1.博朗软件Bleum(上海)2.中软国际(北京)3.东软集团Neusoft(沈阳)4.博彦科技BeyondSoft(北京)5.海辉软件HiSoft(大连)6.文思VanceInfo(北京)7.浙大网新Insigma(杭州)8…

    2022年6月9日
    65
  • SQLSTATE[HY000] [2002] 错误

    SQLSTATE[HY000] [2002] 错误

    2021年10月17日
    56
  • coding平台_codeserver github

    coding平台_codeserver github这年头,IDE虽然也便宜了,不过,免费,还如此强大的就不多了。Codio,官方号称世界上最强大的基于浏览器的强大免费WebIDE,口号很响亮,当然,我也没用过,希望有朋友用了的,也来冒个泡。因为自己也是才接触这个,看了些国外用户的反馈,感觉还不错。这里就主要给寻找IDE的朋友们推荐这个东西。Codio是一个功能强大的云计算和基于浏览器的IDE(webide),从原型到部署,涵盖了完整的web…

    2022年8月31日
    7
  • 软件开发生命周期汇总

    软件开发生命周期汇总在开发模型知识点中 软件生命周期的概念 各种开发模型的特点和应用场合 主要的开发模型有瀑布模型 增量模型 螺旋模型 喷泉模型 智能模型 V 模型 RAD 模型 CBSD 模型 原型方法 XP 方

    2026年3月16日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号