2016-09-14 64 views
0

這是一個只針對Windows中的Java的問題。使用Java打開文件的屬性窗口

我需要將調用此窗口的方法:

enter image description here

所以基本上的方法應該是這樣的:

public void openProperties(File file){ // or String fileName 

} 

所以聲明:opernProperties(new File(test.txt));應該打開上面的窗口。

所以只是爲了澄清,我不想閱讀和管理屬性。我只想打開屬性窗口。

+0

這個問題已經被問沒有答案[http://stackoverflow.com/questions/ 11132939 /如何對節目的屬性窗口-的天然文件系統文件夾式的Java(http://stackoverflow.com/questions/11132939/how-to-show-properties-window -of-native-file-systems-file-folder-in-java) –

+0

我認爲你最好的選擇是使用[java native access](https://github.com/java-native-access)並嘗試使用下面的代碼[http://stackoverflow.com/a/33472984/1866870](http://stackoverflow.com/a/33472984/1866870) –

回答

2

我可以使用下面的顯示文件屬性窗口:

這應該顯示延遲3秒的屬性窗口。請注意,ALK談到傳遞窗口,通過HWND成員,如果你不希望它自動關閉3秒後

public static void main(String[] args) throws InterruptedException { 
     ShellAPI.SHELLEXECUTEINFO shellExecuteInfo = new ShellAPI.SHELLEXECUTEINFO(); 
     shellExecuteInfo.lpFile = "C:\\setup.log"; 
     shellExecuteInfo.nShow = User32.SW_SHOW; 
     shellExecuteInfo.fMask = 0x0000000C; 
     shellExecuteInfo.lpVerb = "properties"; 
     if (Shell32.INSTANCE.ShellExecuteEx(shellExecuteInfo)){ 
      Thread.sleep(3000); 
     } 
    } 
+0

我不明白3秒延遲 –

+0

它只是爲了例如,所以你會成爲ab le去看窗戶。 –