You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让程序仅从特定路径运行?限制仅可在C盘硬盘启动

如何限制程序仅从C盘硬盘启动,禁止DVD/其他驱动器运行

你的代码存在几个关键问题,导致无法实现需求:

  • 错误使用了File.documentsDirectory:这是系统文档目录的路径,不是当前SWF程序所在的位置,完全找错了判断对象
  • 硬编码路径且转义错误:字符串里的反斜杠\需要写成\\才能正确识别,否则会被当作转义字符
  • 逻辑混乱:两个if条件互相矛盾,而且while(true)死循环会直接卡死程序,后续代码根本执行不到

正确实现思路

要实现「仅允许从C盘启动」,核心是获取程序自身所在的驱动器盘符,然后判断是否为C盘:

  1. 用File.applicationDirectory获取当前SWF所在的目录
  2. 从目录路径中提取盘符(比如路径开头的C:)
  3. 如果盘符不是C:,就执行退出或限制运行的逻辑

修正后的代码

stop();
import flash.filesystem.*;

// 获取当前程序所在的目录
var appDir:File = File.applicationDirectory;
// 获取驱动器盘符(比如 "C:")
var driveLetter:String = appDir.nativePath.substr(0, 2);

// 判断是否为C盘
if (driveLetter.toUpperCase() != "C:") {
    // 清除显示内容
    while (stage.numChildren > 0) {
        stage.removeChildAt(0);
    }
    // 退出程序
    fscommand("quit");
}
// 如果是C盘,正常执行后续逻辑

代码说明

  • File.applicationDirectory:准确指向当前SWF文件所在的文件夹,这才是需要判断的位置
  • substr(0, 2):提取路径开头的盘符部分(比如C:\xxx会提取出C:)
  • toUpperCase():避免大小写问题(比如有些系统可能显示c:)
  • 用stage.numChildren > 0代替死循环,防止程序卡死,确保所有子元素都被清除

内容的提问来源于stack exchange,提问作者karam El Fekey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 03:07:39