我需要在Air / Flex应用程序中当前登录用户的名称。该应用程序将仅部署在Windows计算机上。我想我可以通过重新表达User目录来实现这一点,但可以接受其他方式。
您可以进行几次小清理...
package
{
import flash.filesystem.File;
public class UserUtil
{
public static function get currentOSUser():String
{
var userDir:String = File.userDirectory.nativePath;
var userName:String = userDir.substr(userDir.lastIndexOf(File.separator) + 1);
return userName;
}
}
}
按照Kevin的建议,使用File.separator
进行目录拆分跨平台(仅在Windows和Mac OS X上进行了测试。)>
除非您正在寻找孩子,否则无需使用resolvePath("")
。
此外,使函数成为适当的getter可以使绑定而无需任何进一步的工作。
在上面的示例中,我将其放入UserUtil
类,现在我可以绑定到UserUtil.currentOSUser
,例如:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Label text="{UserUtil.currentOSUser}"/>
</mx:WindowedApplication>
也可以尝试:
这不是最漂亮的方法,但是如果您知道AIR应用程序只能在Windows环境中运行,那么效果很好:
这里是可以在XP / Vista中使用的解决方案,但是肯定可以扩展到OSX,Linux,我仍然对另一种方法感兴趣。
稍后更新:实际上有一个内置函数来获取当前用户。我认为它在nativeApplication中。