2011-07-13 11 views
8

Jestem świadomy można nazwaćCzy jest to dobry sposób, aby ustalić, czy plik jest wykonywalny w Javie

Runtime.getRuntime().exec(file); 

i uzyskać wyjątek, jeśli nie jest wykonywalny, jednak jest to niebezpieczne, ponieważ prowadzenie wykonywalny może mieć efekty uboczne.

Chyba wystarczy sprawdzić, czy rozszerzenie jest wystarczające w systemie Windows, ale czy istnieje sposób, w jaki mogę odczytać wykonywalny bit w systemach plików * nix?

Jaki jest najlepszy sposób sprawdzenia, czy plik jest wykonywany w systemie operacyjnym?

Odpowiedz

15
+2

Cheers Do tego spodziewałem byłoby nazwać isExecutable więc zacząłem pisać „jest” w auto kompletne. –

+3

Po prostu pamiętaj, że to zwraca true dla katalogów; więc zadzwoń do .isDirectory przed .canExecute. – vemv

+7

To prawdopodobnie nie jest to, czego szukasz, ponieważ ist może powrócić true dla "txt" –

3

Można użyć klasy Files. Ma tę metodę static boolean isExecutable(Path path). Jeśli masz tylko ścieżkę String, możesz uzyskać Path używając klasy Paths. Podoba Ci się to

Path path = Paths.get(pathToFile); 
Powiązane problemy