易语言取c盘文件夹中的文件被占用,易语言教程移动文件复制文件删除文件

课程示范了移动文件()、复制文件()、删除文件()命令的使用注意事项,并采用拖放对象写了一个小程序,本节课针对的对象只是文件,

c1d9ba0e3afdab7ad503a0e04d434b25.png

系统核心支持库-复制移动删除文件

新命令

1、复制文件()

2、移动文件()

3、删除文件()

用到的命令(复习)

1、取文本右边()

2、取文本长度()

3、倒找文本()

4、浏览文件夹()

5、取运行目录 ()

新组建

拖放对象

视频教程源码:

.版本 2

.支持库 edroptarget

.支持库 shell

.程序集 窗口程序集_启动窗口

.子程序 __启动窗口_创建完毕

拖放对象1.注册拖放控件 (编辑框_源文件路径.取窗口句柄 ())

.子程序 _拖放对象1_得到文件

.参数 接收到的文件路径, 文本型

编辑框_源文件路径.内容 = 接收到的文件路径

.子程序 _按钮1_被单击

编辑框_新文件路径.内容 = 浏览文件夹 (“保存路径”, )

.子程序 _按钮2_被单击, , , 移动文件

.局部变量 文件名, 文本型

.局部变量 str, 逻辑型

' C:\Users\zcp\Desktop\易语言教程-39\测试.txt

文件名 = 取文本右边 (编辑框_源文件路径.内容, 取文本长度 (编辑框_源文件路径.内容) - 倒找文本 (编辑框_源文件路径.内容, “\”, , 假))

str = 移动文件 (编辑框_源文件路径.内容, 编辑框_新文件路径.内容 + “\” + 文件名)

.如果 (str = 真)

标签3.标题 = “移动成功!”

.否则

标签3.标题 = “移动失败!”

.如果结束

.子程序 _按钮3_被单击, , , 复制文件

.局部变量 str, 逻辑型

.局部变量 文件名, 文本型

' 复制文件 (, )

文件名 = 取文本右边 (编辑框_源文件路径.内容, 取文本长度 (编辑框_源文件路径.内容) - 倒找文本 (编辑框_源文件路径.内容, “\”, , 假))

str = 复制文件 (编辑框_源文件路径.内容, 编辑框_新文件路径.内容 + “\” + 文件名)

.如果 (str = 真)

标签3.标题 = “复制成功!”

.否则

标签3.标题 = “复制失败!”

.如果结束

.子程序 _按钮4_被单击, , , 删除文件

.局部变量 str, 逻辑型

str = 删除文件 (编辑框_源文件路径.内容)

.如果 (str = 真)

标签3.标题 = “删除成功!”

.否则

标签3.标题 = “删除失败!”

.如果结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 上一次发布过的程序:【首发】检测文件占用,具有学习和商业价值(By超级用户),可以使用,仿电脑管家 正文 对于怎么枚举文件句柄 ,上一帖子对此有介绍,核心代码大概如下:如果 (ZwQueryObject (handle, #ObjectTypeInformation, unicode, 0, size) ≠ #STATUS_INVALID_HANDLE )' 只要不是无效的,为什么,详细看下面的注释 ' 参数 ' Handle ' 对象的一个句柄来获信息。 ' ObjectInformationClass ' 指定一个OBJECT_INFORMATION_CLASS返回值的类型决定了信息在ObjectInformation缓冲区。 ' ObjectInformation ' 一个指向caller-allocated缓冲接收请求的信息。 ' ObjectInformationLength ' 指定的大小,以字节为单位,ObjectInformation缓冲区。 ' ReturnLength ' 一个指向变量的指针,接收的大小,以字节为单位,请求的关键信息。如果NtQueryObject STATUS_SUCCESS返回,返回的变量包含的数据量。如果NtQueryObject返回STATUS_BUFFER_OVERFLOW或STATUS_BUFFER_TOO_SMALL,您可以使用变量的值来确定所需的缓冲区大小。 ' 返回值 ' NtQueryObject返回STATUS_SUCCESS或适当的错误状态。可能的错误状态码包括以下: ' 返回代码 描述 ' STATUS_ACCESS_DENIED ' 有足够的权限来执行该cha询。 ' STATUS_INVALID_HANDLE ' 提供对象句柄无效。 ' STATUS_INFO_LENGTH_MISMATCH ' 信息长度不足以容纳数据。 unicode = 空白字节集 (size) ZwQueryObject (handle, #ObjectTypeInformation, unicode, size, 0)' 读信息的unicode文本 RtlUnicodeStringToAnsiString (ansi, unicode, 真)' 编码转换 ' RtlUnicodeStringToAnsiString例程将给定Unicode字符串转换成一个ANSI字符串。 str = 指针到文本 (ansi.Buffer) ' RtlFreeAnsiString常规版本存储由RtlUnicodeStringToAnsiString分配。 ' 参数 ' AnsiString ' 指针ANSI字符串缓冲区由RtlUnicodeStringToAnsiString以前分配的。 RtlFreeAnsiString (ansi) str = “无法获”' 无效的怎么获…… 返回 (str) 这一次呢更新了一个RemoteCloseHandle ,大概的原理是什么呢? 同时也采用了一些比较骚的方法,这种方法的限制较多,但是对于32位进程就很有效果。 NtClose在MSDN的大概介绍 1. NtClose is a generic routine that operates on any type of object. 2. Closing an open object handle causes that handle to become invalid. The system also decrements the handle count for the object and checks whether the object can be deleted. The system does not actually delete the object until all of the object's handles are closed and no referenced pointers remain. 3. A driver must close every handle that it opens as soon as the handle is no longer required. Kernel handles, which are those that are opened by a system thread or by specifying the OBJ_KERNEL_HANDLE flag, can be closed only when the previous processor mo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值