找回密码
 加入我们
搜索
      
查看: 7130|回复: 22

[软件] 一个很奇怪的逻辑,为啥7zip和winrar这种软件,对这俩操作的动作不一样?

[复制链接]
发表于 2023-8-23 14:34 | 显示全部楼层 |阅读模式
你打开一个压缩包,在菜单里选择解压缩,它是不经过中间步骤直接解压到你的目标路径的。
但你如果把文件往外拖动,它就会先解压到临时文件夹,再移动到目标路径。

为啥会出现这种差别?是windows的api限制,还是软件作者脑子瓦特了?。。

QQ图片20220821225514.jpg
发表于 2023-8-23 14:56 | 显示全部楼层
我都是右键解压的,你们都是双击进去再解压的?
发表于 2023-8-23 14:56 | 显示全部楼层
360压缩拖动也能直接解压到路径,所以应该不是windows的限制
发表于 2023-8-23 14:57 来自手机 | 显示全部楼层
搜到了这个解释,可以参考一下。
https://www.zhihu.com/question/26197265/answer/32359969
发表于 2023-8-23 14:58 | 显示全部楼层
可以抱的萝卜 发表于 2023-8-23 14:56
我都是右键解压的,你们都是双击进去再解压的?

如果要分类,或者压缩文件和解压的不在同一个目录的,就需要拖动方便点
发表于 2023-8-23 15:07 | 显示全部楼层
我刚好写过这个,windows OLE拖放对象创建后就是系统管理了,DoDragDrop这个函数并不会告知程序拖放目标最终的路径,所以如果想知道目标路径就得截获windows资源管理器的消息,这个行为可能会报毒,换句话说就是程序只管创建拖放对象,后面不用管
发表于 2023-8-23 15:11 | 显示全部楼层
一直用winrar,清爽
发表于 2023-8-23 15:27 | 显示全部楼层
纯粹设计逻辑不一样而已
没必要纠结
发表于 2023-8-23 15:35 | 显示全部楼层
rSkip 发表于 2023-8-23 14:57
搜到了这个解释,可以参考一下。
https://www.zhihu.com/question/26197265/answer/32359969 ...

好问题好回答
发表于 2023-8-23 15:39 | 显示全部楼层
我也一直有这个疑问,长知识了
发表于 2023-8-23 15:41 | 显示全部楼层
学到了奇怪的知识
发表于 2023-8-23 16:15 | 显示全部楼层
bandizip解决了这个问题...
先探测目标路径,然后再解压...
发表于 2023-8-23 17:19 | 显示全部楼层
带路径是解压是软件独立完成的,直接拖放的话,解压软件不知道路径,但window资源管理器知道,所以需要放在临时文件夹再拖到目的地
发表于 2023-8-23 17:21 | 显示全部楼层
有用的知识增加了
发表于 2023-8-23 17:25 | 显示全部楼层
解压软件脑子没坏, api压根没告诉解压软件目标位置是哪
设计api的脑子也没坏, 因为你拖放的目标位置可以不是一个存储路径, 完全可以是其他软件允许接受拖放的区域
发表于 2023-8-23 17:28 | 显示全部楼层
当你拖动文件的时候,由于没有解压的目标文件夹,那么解压工具能做的有两种:一是在内存中解压,而是在Windows指定的临时文件夹解压
zip貌似可以在内存里直接解压,也就不需要到临时文件夹里解压
发表于 2023-8-23 17:33 来自手机 | 显示全部楼层
uuyyhhjj 发表于 2023-8-23 15:07
我刚好写过这个,windows OLE拖放对象创建后就是系统管理了,DoDragDrop这个函数并不会告知程序拖放目标最 ...

那么系统解压在appdata里面创建的文件夹会自动删除吗?

点评

不会,除了temp会触发系统释放,其他地方写入的文件需要用户或程序自己删除,不然永远都在那  发表于 2023-8-23 18:01
发表于 2023-8-23 17:34 | 显示全部楼层
k8qxt5 发表于 2023-8-23 17:33
那么系统解压在appdata里面创建的文件夹会自动删除吗?

不会,要软件自己删除
发表于 2023-8-23 17:40 | 显示全部楼层
原因上面好几位都解释了,

windows已经是给软件权限比较大的系统了,安全和方便难两全,macOS也推出沙盒的那两年,不少app都从macOS自带的商店里下架或不再提交新版,就是因为沙盒版在这类用户体验上有了更多限制。

发表于 2023-8-23 18:05 来自手机 | 显示全部楼层
uuyyhhjj 发表于 2023-8-23 15:07
我刚好写过这个,windows OLE拖放对象创建后就是系统管理了,DoDragDrop这个函数并不会告知程序拖放目标最 ...

微软这是什么逻辑,是不是签名了就可以不报毒?
发表于 2023-8-23 18:27 | 显示全部楼层
有个典型场景是把文件拖拽到需要管理员权限的文件夹里,如果直接由压缩软件直接写入对应路径就不得不提权,要么重开压缩软件,要么给压缩软件注册个系统服务,都不怎么合适,不如交给资源管理器自己提权处理,安全性上也有好处。
发表于 2023-8-23 20:10 | 显示全部楼层
聽說WINRAR 有漏洞,要先升級到6.23版!!!!

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-27 01:40 , Processed in 0.013734 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表