V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mikewang
V2EX  ›  程序员

卸载软件的时候需要注意了,质量不好卸载程序会清空您的磁盘 :)

  •  2
     
  •   mikewang ·
    MikeWang000000 · 2023-09-28 21:37:41 +08:00 · 7955 次点击
    这是一个创建于 450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    省流:如果安装地址选在 C 盘根目录,卸载程序会把整个 C 盘全部删掉


    尊敬的指挥官:

    在今日 12:00 所发布的引力测试 PC 客户端,若进行“卸载游戏文件”操作,在执行游戏卸载时会根据所安装的游戏目录不同,出现将游戏安装盘符内所有文件删除的问题。
    我们在发现问题后,进行了多次重现测试,测试结果与上述一致,在执行“卸载游戏文件”操作时会根据游戏安装目录的不同,出现清空游戏客户端文件所在目录内所有文件的问题,包括根目录。

    会导致卸载时出现清空游戏客户端文件所在目录内所有文件的问题主要集中在安装游戏路径在根目录时,如:C:/
    在此,我们呼吁每一位看到此说明的指挥官,在游戏安装时如需要修改安装路径,请不要直接安装在根目录下,而是多设一层子目录,如:C:/GF2Exilium/GF2 Game

    若您此刻想进行“卸载游戏文件”操作,而安装时也直接安装至根目录时,烦请您不要使用启动器的“卸载游戏文件”功能,转由手动删除游戏文件进行。

    出现了这样的错误,我们诚恳、诚挚地向各位指挥官道歉,这样的品控问题也是不应该出现的,我们定将重视此次问题,对之后的品控管理进行加强与监管。
    此问题的应对我们正在紧急赶制中,会尽快进行问题修复。
    最后,对各位指挥官一直以来的包容与支持我们衷心表示感谢,感谢您们!

    《少女前线 2:追放》团队

    65 条回复    2023-10-01 22:32:44 +08:00
    sduoduo233
        1
    sduoduo233  
       2023-09-28 21:40:16 +08:00
    很正常吧,装软件的时候不应该选个空目录吗
    aisk
        2
    aisk  
       2023-09-28 21:48:16 +08:00
    会有人把安装路径直接选在 C 盘根目录吗?
    dssxzuxc
        3
    dssxzuxc  
       2023-09-28 21:50:56 +08:00
    @sduoduo233 2023 年了,我觉得很不正常。
    Eiden
        4
    Eiden  
       2023-09-28 21:55:20 +08:00   ❤️ 1
    之前有个软件就是默认装 c 盘根目录的, 卸载的时候吓死我了直接断电
    zq11211277
        5
    zq11211277  
       2023-09-28 21:56:11 +08:00   ❤️ 17
    但凡有一方正常 就不会出现这个问题
    kumoilain
        6
    kumoilain  
       2023-09-28 22:03:01 +08:00
    少钱 2 这次态度太卑微了
    散包应该把这些乱改安装路径的用户批判一番
    (除非他们真的这么蠢的把默认安装路径放在磁盘根目录,这不可能吧)
    DefoliationM
        7
    DefoliationM  
       2023-09-28 22:07:15 +08:00
    如果游戏是装在 C:/GF2 Game, 为什么卸载要把整个 C:删了,直接删 GF2 Game 不行吗?
    tyzandhr
        8
    tyzandhr  
       2023-09-28 22:08:12 +08:00 via Android   ❤️ 3
    天哪,我的电脑在自动卸载原神!
    mikewang
        9
    mikewang  
    OP
       2023-09-28 22:12:47 +08:00
    @sduoduo233 @zq11211277 @kumoilain
    其实软件的安装/卸载路径是有讲究的:

    - 如果指定路径不存在,那么可以直接使用安装;
    - 如果指定路径存在,是需要软件自己在下面建子目录安装的。

    比如用户 C 盘空间不足,填写安装路径为 D:\Software\ (已存在),不代表软件可以直接使用这个路径,是需要建子目录的,卸载时候也不能直接把 D:\Software\ 全部删除。

    用户没把路径填全是一个问题,开发团队有责任也是确实的。
    ljsh093
        10
    ljsh093  
       2023-09-28 22:32:39 +08:00   ❤️ 1
    @DefoliationM #7 安装目标选根目录时不会自动建立子目录,so
    BeautifulSoap
        11
    BeautifulSoap  
       2023-09-28 22:48:08 +08:00
    @sduoduo233
    @aisk
    @zq11211277
    你们这就是有点纯抬杠了。即便不装根目录,比如装在更常见的 C:\Program Files 这些目录下,卸载的时候也会直接把 C:\Program Files 给清空
    DOLLOR
        12
    DOLLOR  
       2023-09-28 22:49:45 +08:00
    正常来说都不应该把应用程序安装在根目录下的
    MFWT
        13
    MFWT  
       2023-09-28 22:50:03 +08:00
    @DefoliationM

    看样子可能还会是这样:

    1. 用户有一个 D:\game
    2. 用户选择把游戏安装在 D:\game 下
    3. 正常来讲软件应该要自己建一个子目录,比如 gf2 ,完整目录就是 D:\game\gf2
    4. 但是看样子 gf2 没这么干,直接把游戏本体和 unist.exe 装在了 D:\game 下
    5. 用户选择卸载,卸载程序看了一下安装目录,嗯,D:\game ,直接清空
    6. have fun !
    MFWT
        14
    MFWT  
       2023-09-28 22:54:00 +08:00
    说白了,安装程序还是得自己创建下子目录
    比如我选择了 C:\,就给我装在 C:\GAME_NAME 下,我选择了 C:\yellow\game ,就给我装在 C:\yellow\game\GAME_NAME 下
    但是似乎不愿意这么干的安装程序,占比并不在小....
    kloudmuka
        15
    kloudmuka  
       2023-09-28 23:00:28 +08:00   ❤️ 5
    楼上有几个给开发方洗地的是什么脑回路?即便用户指定根目录,难道常识不应该是安装程序创建一个专门的子目录吗?
    aliveyang
        16
    aliveyang  
       2023-09-28 23:03:49 +08:00
    不会创建子目录就是软件的问题
    mauis
        17
    mauis  
       2023-09-28 23:24:12 +08:00
    不好安装也会,之前的 nvidia linux 驱动 sudo rm -rf / 斜杠前没加点
    1423
        18
    1423  
       2023-09-28 23:24:34 +08:00
    之前有见过弱智开发者 windows 安装程序直接按进程名 kill 的
    合着全宇宙这个进程名被他们家独占了
    admin13579
        19
    admin13579  
       2023-09-28 23:46:45 +08:00
    我老早之前读本科的时候遇到过,当时是腾讯会议,我那个腾讯会议也是 N 久之前装的,忘了是默认路径还是啥,反正就是安装路径在桌面上。

    然后有次要参加会议,腾讯会议要求强制更新,我点了更新,然后就傻眼了,桌面上的文件开始以 0.5 秒/个的速度在我眼皮底下一个个自动消失,我只能眼睁睁看着没法做任何操作打断进程。就腾讯会议更新了这不到十秒钟的时间,桌面上文件全没了。我没再动过电脑,第一时间找了数据恢复的,结论都是无法恢复,因为字节都给粉碎干净了。损失包括大量放桌面文件夹里的实用软件、离提交期限还剩两个月的本科毕业论文和全部实验数据,以及大量快捷方式。

    后来问了别人才知道,应该是腾讯会议的原因。因为安装路径是桌面,腾讯会议更新时有一步会把自己路径下的旧版本过期文件清理掉,于是他就把桌面与自己无关的文件全部识别为不需要文件给粉碎了。
    从此以后再也没把任何程序的安装路径设置为桌面。
    abcdxe2v
        20
    abcdxe2v  
       2023-09-28 23:51:27 +08:00
    所以我现在每隔几个月就把固态全盘备份一次到机械上
    abcdxe2v
        21
    abcdxe2v  
       2023-09-28 23:55:33 +08:00
    我没遇到过卸载软件误删这种问题,但是遇到过一次浏览器网站数据( localstorage )更新被误删的问题
    ochatokori
        22
    ochatokori  
       2023-09-28 23:58:22 +08:00 via Android
    我试过被 steam 清空过
    chenshaoju
        23
    chenshaoju  
       2023-09-28 23:59:02 +08:00   ❤️ 1
    somehow ,想到著名的 'rm -rf /usr /something' 事件。

    https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/issues/123
    mxT52CRuqR6o5
        24
    mxT52CRuqR6o5  
       2023-09-29 00:00:33 +08:00 via Android
    很多软件都是这个卸载逻辑,真要做防呆也应该是在安装的时候做
    hanqian
        25
    hanqian  
       2023-09-29 00:06:26 +08:00
    这个真不怪用户好吧,确实有一小部分不守规矩的软件/游戏安装的时候不会自己创建目录,老手会特别注意一下安装程序的行为,普通用户(特别是这些在智能手机时代成长起来的手游玩家)未必有这种习惯
    vialon17
        26
    vialon17  
       2023-09-29 00:11:52 +08:00
    软件安装两种方式:
    1 、选择目标目录后,软件会自己创建一个子目录来放置文件;
    2 、选择目标目录后,直接释放文件到目录里面。
    似乎没人规范这两种安装方式,
    不过最好还是不要直接装根目录好点。
    cosette
        27
    cosette  
       2023-09-29 00:48:44 +08:00
    安装目录的选择没有统一的规范且相当混乱,很多安装程序会有一个默认的安装路径,比如 C:\Program Files (x86),在默认路径下,程序会自动创建一个文件夹,但如果选择了自定义路径,程序反而不会自动创建一个文件夹,而是直接释放在选择的路径的根目录。

    而有些程序在安装时不管什么情况都会自动创建一个新目录,这种情况下如果用户提前创建好目录会嵌套。
    DefoliationM
        28
    DefoliationM  
       2023-09-29 01:08:20 +08:00
    @MFWT 即使是 D:\game 被删了,也不会导致整个 D:里面的文件被删除,看那那张图的说明是要用户去建两层目录去安装,如果是两层,他卸载的时候删除的是父目录的父目录,无法理解的逻辑
    shalingye
        29
    shalingye  
       2023-09-29 01:37:45 +08:00 via Android
    卸载的规范做法明明是把自己程序的文件挨个删除,怎么到现在成了清空目录了呢
    israinbow
        30
    israinbow  
       2023-09-29 02:31:38 +08:00
    其实以前 Phantasy Star Online 2 出过一次更新游戏的时候, 启动器删除 C 盘文件的神秘操作, 直接删到宕机.
    https://www.neogaf.com/threads/latest-phantasy-star-online-2-update-deletes-files-from-users-pcs.669129/

    比鹰脚的 rm -rf ./* 高到不知道哪里去了.
    czfy
        31
    czfy  
       2023-09-29 04:07:07 +08:00   ❤️ 3
    如果哪个用户没分区,会不会把系统也扬了?
    mercury233
        32
    mercury233  
       2023-09-29 06:51:59 +08:00   ❤️ 1
    安装程序占三成锅,卸载程序占七成。一般的卸载程序是根据安装时生成的文件列表删除文件,最多针对一下缓存目录和用户数据目录,而不是把安装目录下所有文件全扬了
    hs444
        33
    hs444  
       2023-09-29 07:01:47 +08:00 via Android
    零几年刚用上电脑的时候就遇见过,具体是哪个软件记不清了,卸载时就是直接清除安装目录下的所有文件,后来也都会长个心眼。但是安装器的行为不统一确实是徒增心智负担,在修改安装目录后,有的会自动创建子目录,有的不会,为了放心还是会自己手动新建一个子目录,就导致一些软件的安装目录变成了 D:\abc\abc\
    mingl0280
        34
    mingl0280  
       2023-09-29 08:38:35 +08:00 via Android
    当年 EVE 的卸载器也是同样的毛病,不奇怪了
    bt7vip
        35
    bt7vip  
       2023-09-29 09:29:40 +08:00 via Android
    安装过很多工业软件,自己装也帮别人装,习惯是改软件默认目录的根,比如 c 盘改 d 盘,后面路径不改,因为软件会有很多二开的外挂,胡乱改路径外挂用不了。卸载也很方便,卸载程序卸载重启后直接目录删除,干净又健康。
    yigecaiji
        36
    yigecaiji  
       2023-09-29 09:35:54 +08:00 via Android
    微软的锅吧(
    也不给个标准
    有些软件不改路径会自动创建文件夹
    有些软件改了路径不会自动创建文件夹
    有些根本就不会创建文件夹
    每次安装新软件的时候都要纠结要不要创建个文件夹给它
    创建了又怕到时候叠了两个文件夹
    不创建又怕到时候这软件的所有文件都散落在 program files 里🐶
    wonderfulcxm
        37
    wonderfulcxm  
       2023-09-29 09:37:50 +08:00 via iPhone
    这个当然是开发方全责
    jackmod
        38
    jackmod  
       2023-09-29 09:43:31 +08:00
    现成的开源工具不拿去换皮,非要自己玩,测试还不足,这下玩大了。
    devliu1
        39
    devliu1  
       2023-09-29 09:45:25 +08:00 via Android
    以前很多软件的卸载程序会生存一个 uninsall.txt 按文件路径删
    geelaw
        40
    geelaw  
       2023-09-29 09:52:32 +08:00 via iPhone
    @MFWT #14
    @aliveyang #16
    @hanqian #25

    我印象里大多数软件都是不额外建立目录的,但多数软件的安装程序的默认目录都是不存在的目录(比如目录是 C:\Program Files\ProductName )而且如果目标目录安装前已经存在且不是这个软件的旧版本(原地更新的话)会警告用户。

    @yigecaiji #36

    规范是默认安装在 %LOCALAPPDATA%\Programs (单用户)或者 %PROGRAMFILES%(整个系统)里面,并且建立 ProductName 或者 CompanyName\ProductName 子目录,以及 Windows 应用商店应用由 Windows 部署。
    qing18
        41
    qing18  
       2023-09-29 10:22:11 +08:00   ❤️ 3
    把用户文件删了,就道个歉?
    DogBear
        42
    DogBear  
       2023-09-29 10:26:14 +08:00 via Android   ❤️ 1
    你要找的是不是:JDK
    pioneerzxb
        43
    pioneerzxb  
       2023-09-29 10:34:36 +08:00 via iPhone
    游戏开发和测试背大锅,毕竟不是每个游戏玩家都懂这些东西的。开发时需要替用户考虑到各方面问题
    iScout
        44
    iScout  
       2023-09-29 10:50:06 +08:00
    哈哈哈,忘了是哪个软件了,当时把我 appdata 目录全干掉了,他大爷的
    y1y1
        45
    y1y1  
       2023-09-29 10:54:07 +08:00
    技术太硬
    caiqichang
        46
    caiqichang  
       2023-09-29 10:57:04 +08:00
    10 年前就被迅雷坑过
    ohwind
        47
    ohwind  
       2023-09-29 11:04:14 +08:00
    想起来我程序删日志差点把客户配置目录删光......
    araraloren
        48
    araraloren  
       2023-09-29 11:05:35 +08:00
    @devliu1 Yes, generate a uninstall.dat. That's the right way to do this.
    hefish
        49
    hefish  
       2023-09-29 12:34:13 +08:00
    嗯嗯,OP 说的对,学习了。
    paradoxs
        50
    paradoxs  
       2023-09-29 12:41:42 +08:00
    分享一个:

    同花顺 PC 客户端的卸载程序, 就是这种逻辑。 如果在根目录,那你整个磁盘就空了。
    snw
        51
    snw  
       2023-09-29 13:05:43 +08:00 via Android   ❤️ 2
    楼上好多人都不知道 Windows 正常安装、卸载程序的逻辑吗???

    标准安装的 Windows 程序,安装和更新时都会记录创建了哪些文件夹、文件、注册表项、服务等。当使用 Windows 卸载软件功能时,会按照这个记录去删除每个当初安装的文件、文件夹(如果文件夹为空)等,而不是无脑地清空整个安装目录。

    这样做固然会导致残留部分目录,但是安全。如果你觉得用户可能对残留目录不满意,大可以询问用户是否进一步删除残留的文件(并警告可能删除这些目录里其他文件)。

    某些傻叉软件,既自作聪明搞自己的非标准安装包,又偷懒不记录每个创建的文件,最后不知道哪些是自己的文件,只能整个安装目录一删了之。
    snw
        52
    snw  
       2023-09-29 13:09:40 +08:00 via Android
    另外见过不少金融类软件、政府类软件都是直接在 C: 根目录建个文件夹装在里面,根本不走 Windows 的 Program Files 那套目录标准,猜测可能是安全审计要求。
    wtdd
        53
    wtdd  
       2023-09-29 13:29:17 +08:00
    某国产手机清理软件,就曾经在明明是自己选择清理了很少几个项目,大概 1G 左右吧,
    顺便帮我把几十 G 的钛备份文件清理掉了,跟谁说理去,几年收藏的各种 apk 就这么没了
    archxm
        54
    archxm  
       2023-09-29 14:09:00 +08:00 via Android
    这得吃官司
    amon
        55
    amon  
       2023-09-29 15:21:57 +08:00
    现在都是 SSD 盘有很多不分区的,何况大多数软件就是默认 C 盘,有什么问题?

    楼上几个评论给我看懵逼了,哪里来的傻狗死一边去。
    fzls
        56
    fzls  
       2023-09-29 16:07:05 +08:00
    @admin13579 #19 好惨,你的毕业论文相关的东西有在云盘备份吗-。-没有的话好绝望
    admin13579
        57
    admin13579  
       2023-09-29 17:22:06 +08:00 via Android
    @fzls 最后在一个外接硬盘里找到了好几个版本之前毕业论文的存档,实际损失约 40%的进度。基础数据也保留下来了,但图表需要重绘。
    trojancow
        58
    trojancow  
       2023-09-29 20:27:55 +08:00
    把程序装到根目录并不能说少见,我见过不少装打印机驱动都给装到 c 盘根目录的情况,如果是逻辑不好的卸载程序真的有隐患,所以这个帖子是值得让人警醒的!
    ily433664
        59
    ily433664  
       2023-09-29 20:28:31 +08:00
    @czfy 会的,已经试验过了
    aisk
        60
    aisk  
       2023-09-29 21:21:04 +08:00
    @amon > 何况大多数软件就是默认 C 盘

    绝大多数软件默认选择的虽然是 C 盘,但不是 C 盘跟目录。

    > 哪里来的傻狗死一边去

    现在再来回味下你说的这句话。
    zhangchongjie
        61
    zhangchongjie  
       2023-09-29 22:48:19 +08:00
    不仅仅可能会清空 c 盘,像阿里云盘这种脑残,甚至可以不管你原安装地址,只要更新升级,就给你装到 c 盘用户目录下
    wcnmm
        62
    wcnmm  
       2023-09-30 10:03:27 +08:00
    @aisk 这种人无知且自大
    sariya
        63
    sariya  
       2023-09-30 21:12:32 +08:00 via Android
    这种就是卸载程序的锅,要么是建专有目录再删,要么就是内置游戏的文件列表根据列表去删
    minamike
        64
    minamike  
       2023-10-01 11:05:25 +08:00 via iPhone
    惊 我还以为 windows 卸载是根据一个列表逐项删除的 没想到是简单粗暴直接删除安装根目录
    ShelterLee
        65
    ShelterLee  
       2023-10-01 22:32:44 +08:00
    我已经被整怕了,现在安装应用改目录必须要手动创建一个这个程序的目录,有的会自动创建有的不会 太哈人了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.