boolean bool=f.setExecutable(false);返回false表示操作失败,即文件设置为不可执行的操作失败了。
所以
f.canExecute()返回TRUE。这样的结果是正常的。
至于为什么bool=false。原因可能是程序是在Win7以上的操作系统操作,必须要有管理员权限。否则操作失败

解决方案 »

  1.   

    那个妹妹,您看懂我的代码没?认真测试下。
    boolean bool=f.setExecutable(false); 我的配置就是要false,就是要让它失败
    当然等于false
    我是要知道为什么设置执行为失败,执行还能成功?
    麻烦您在server上测下
      

  2.   

    setExecutable
    public boolean setExecutable(boolean executable)设置此抽象路径名所有者执行权限的一个便捷方法。 
    此方法 file.setExcutable(arg) 形式的调用与以下调用的行为完全相同:      file.setExecutable(arg, true) 
    参数:
    executable - 如果为 true,则设置允许执行操作的访问权限;如果为 false,则不允许执行操作。 
    返回:
    当且仅当操作成功时返回 true。如果用户不具有更改此抽象路径名访问权限的权限,那么操作将失败。如果 executable 为 false,并且底层文件系统不实现执行权限,那么操作也将失败。 
    抛出: 
    SecurityException - 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件进行写访问。
    从以下版本开始: 
    1.6  返回false的可能的原因有两个:1、文件路径不对。2、当前用户不具有更爱此抽象路径名访问权限的权限。
      

  3.   

    我想这个set方法对Windows应该是无效的,因为Windows是不是可执行的不是用户说了算,而是Windows说了算,或者反过来想,windows有没有可执行这个权限?又或者Windows下是否可以将一个正常的可执行文件转化为一个不可执行的文件呢?(在不破坏程序结构的前提下)
      

  4.   

    windows官方是承诺过兼容posix的。
    大家还在用xp?
    http://zh.wikipedia.org/wiki/POSIX
      

  5.   

    。。非要windows服务器版本干嘛??我有台服务器,不过是linux的。。
      

  6.   

    自己电脑上试了试,rwx三个属性里面只有w可以设置成功,但是观察文件权限居然没变,找了半天原来是给文件加了个只读属性....我整个人都不好了