2017-02-11 2 views
0
 for (String path : regPath) { 
        if (WinRegistry.readStringSubKeys(WinRegistry.HKEY_CURRENT_USER, path) == null) { 
         System.out.println(path + " was null."); 
         continue; 
        } 

        List<String> ls = WinRegistry.readStringSubKeys(WinRegistry.HKEY_CURRENT_USER, path); 
        if (ls == null || ls.isEmpty()) { 
         return; 
        } else { 
         for (String sub : ls) { 
          sub = path + "\\" + sub; 
          System.out.println(sub); 
          if (WinRegistry.readStringSubKeys(WinRegistry.HKEY_CURRENT_USER, sub) == null) { 
           System.out.println(path + " was null."); 
           continue; 
          } 
          ls = WinRegistry.readStringSubKeys(WinRegistry.HKEY_CURRENT_USER, sub); 
          if (ls == null || ls.isEmpty()) { 
           return; 
          } else { 
           for (String subKey : ls) { 
            subKey = sub + subKey; 
            System.out.println(subKey); 
           } 
          } 

          System.out.println(sub); 
         } 
        } 
       } 

私はこれを思いついたのです!どのようにして、特定のパスのすべてのキーを通過するようにすることができますか?レジストリキーを削除するとヌルが返されます - わからない理由

最後のアクティビティビューアからすべての情報を消去する必要があります。hereは、削除する必要があるレジストリ値を提供します。

答えて

0

レジストリキーを削除するAPIはWinRegistry.deleteKey(int hkey, String key)です。 サブキーがある場合はjava.lang.IllegalArgumentException: rc=5 key=???を投げます。それはすべてのキーに移動して、特定のパス/キーの下にあるすべてのファイルを一覧表示し続けるように、どのように私はこれを編集します

private static void deleteKeyAndSub(int hkey, String key) 
    throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { 
    List<String> ls = WinRegistry.readStringSubKeys(hkey, key); 
    if(ls == null) { 
    return; 
    } else if(ls.isEmpty()) { 
    WinRegistry.deleteKey(hkey, key); 
    } else { 
    for (String subkey : ls) { 
     subkey = key+"\\"+subkey; 
     //System.out.println("delete subkey - "+subkey); 
     deleteKeyAndSub(hkey, subkey); 
    } 
    WinRegistry.deleteKey(hkey, key); 
    } 
} 
+0

:削除レジストリキーの

再帰的に、あなたは、このようなメソッドを実装する必要があります? – Exuro

+0

私にとっては、第3のパラメータ 'List foundKeys'を持ち、サブキーをリストに追加し、' for(String subkey:list){...} 'の中でselfを呼び出す方が好きです。 –

+0

ありがとうございます。 – Exuro

関連する問題