我正在努力写入所有用户的快捷方式目录,并且我相信它可以正常工作,但是我获取路径的方式似乎不正确。而且我不知道这是否是检查所有用户路径是否存在的正确方法,或者是否有更好的方法。这应该能够在 windows xp - windows 8 和 windows server 2000 - 2012 上工作。这是代码:
int pathOne = 0;
int pathTwo = 0;
String allUserPath = "";
File sourceOne = new File("C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\");
if (sourceOne.exists())
{
pathOne = 1;
}
File sourceTwo = new File("C:\\Documents and Settings\\All Users\\Start Menu\\");
if (sourceTwo.exists())
{
pathTwo = 1;
}
if (pathOne == 1 && pathTwo == 0)
{
allUserPath = "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs";
}
if (pathTwo == 1 && pathOne== 0)
{
allUserPath = "C:\\Documents and Settings\\All Users\\Start Menu\\Programs";
}
更新:做一些研究我发现你可以执行命令行查询。
public static final String REG_QRY_CMD="reg query ";
public static final String SHORT_CUT_REG_KEY="HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
String str = REG_QRY_CMD+"\""+
SHORT_CUT_REG_KEY+"\""+ " /v " + "\""+ "Programs" +"\"";
现在这将使我进入当前用户的程序文件夹:示例“C:\Documents and Settings\al\Start Menu\Programs”或“E:\Documents and Settings\meg\Start Menu\Programs”有没有办法我可以切片吗?至少获得“?:\文档和设置\”?这样我至少可以将它添加到所有用户中,而不仅仅是当前用户。这样,猜测工作会更少,效果会更好。谢谢