i File.isDirectory()
zarówno zwracają fałsz nie tylko wtedy, gdy File
nie jest podanym typem, ale także wtedy, gdy sama File
nie istnieje w systemie plików. Jak ustalić, czy File
reprezentuje plik lub katalog, gdy nie istnieje?Jak mogę się dowiedzieć, czy plik jest plikiem lub katalogiem, jeśli nie istnieje?
Odpowiedz
Ogólnie specyficzna ścieżka może reprezentować zarówno katalog i plik. Dopóki nie istnieje katalog lub plik utworzony na tej ścieżce, pojęcie, że jest ono dla jednego lub drugiego, jest nieprawidłowe.
Istnieje jednak specjalny przypadek. Jeśli ścieżka kończy się separatorem ścieżek ('/' w systemach uniksowych, '\' w systemie Windows i może czymś zupełnie innym w innych systemach), to przynajmniej w systemach uniksowych ścieżka nie może być ścieżką pliku. Nie wiem, czy jest to poprawne dla wszystkich systemów.
Najpierw przetestuj plik File.exists().
Pseudo-Code (bo nie rób Java :)):
If File.Exists()
{
If File.isFile()
{
bIsFile = true;
}elseif File.isFolder()
{
bIsFolder = true;
}else
{
//Handle error condition here
}
}else
{
//It does not exist. Handle that here if you care to
}
Nie można
plik musi najpierw istnieje, aby wiedzieć, co to JEST (rozumiem, że jeśli plik nie istnieje to jest jeszcze nic)
Javadoc mówi w obu przypadki:
prawdziwe wtedy i tylko wtedy, gdy plik oznaczony tej abstrakcyjnej ścieżki istnieje i [...]
Plik, który nie istnieje, może być jednocześnie potencjalnie.
Myślę, że odpowiedź brzmi, że nie można. Jednym z powodów jest to, że po prostu nie istnieje. Pozostały powód ma związek z niezależnością systemu od Javy. W zależności od systemu operacyjnego, z którego korzystasz, nie ma różnicy między plikiem a katalogiem. Na przykład w systemie UNIX wszystko jest plikiem. Rury, katalogi, linki - wszystkie są plikami technicznymi.
W obecnej wersji abstrakcyjna nazwa ścieżki, do której odwołuje się obiekt File, może być jedna - dopóki nie zostanie wykonana mkdir()
lub createNewFile()
.
Twoje pytanie jest jak pytanie to:
„? Jak mogę sprawdzić, czy to pole zawiera kota lub psa, gdy jest pusta”
Na pierwszy rzut oka to pytanie jest bezsensowne, podobnie jak twoje. Jeśli plik jest ścieżką, odnosi się do nieistniejącego obiektu systemu plików (tj. Do "nic"), a następnie pyta, czy to "nic" >> to plik lub katalog jest bez znaczenia. Oczywiście nie jest.
Konkretnie, w dowolnym momencie w czasie wszystkich następujących orzeczników przytrzymanie:
file.exists() == false IMPLIES
file.isDirectory() == false AND file.isFile() == false
file.isDirectory() == true OR file.isFile() == true IMPLIES
file.exists() == true
file.isDirectory() == true IMPLIES
file.isFile() == false
file.isFile() == true IMPLIES
file.isDirectory() == false
- 1. Sprawdź, czy argument jest plikiem lub katalogiem
- 2. Sprawdź, czy przekazany argument jest plikiem lub katalogiem w BASH
- 3. Jak się dowiedzieć, czy plik został zmodyfikowany?
- 4. W ASP.Net, Czy mogę dowiedzieć się, czy inna sesja istnieje lub jest ważna przez identyfikator sesji?
- 5. Jak sprawdzić, czy plik jest plikiem EXE lub DLL?
- 6. Jak mogę sprawdzić, czy dana ścieżka jest katalogiem czy plikiem? (C/C++)
- 7. Jak mogę usunąć plik, tylko jeśli istnieje?
- 8. Jak mogę się dowiedzieć, czy istnieje nieistniejący RenderSection?
- 9. wieloplatformowym sposobem sprawdzenia, czy plik jest katalogiem
- 10. Jak mogę się dowiedzieć, czy muszę zachować lub przypisać nieruchomość?
- 11. Ustal, czy listing jest katalogiem lub plikiem w Pythonie za pośrednictwem FTP
- 12. Jak mogę sprawdzić, czy plik Xls jest edytowalnym plikiem, czy nie, używając phpexcel?
- 13. Swift: jak dowiedzieć się, czy list jest alfanumeryczny lub Digit
- 14. Jak mogę się dowiedzieć, czy pierwszy znak ciągu jest liczbą?
- 15. Sprawdza czy plik jest plikiem obrazu
- 16. jak znaleźć ścieżkę docelową linku jeśli plik jest plikiem Link
- 17. Utwórz plik, jeśli plik nie istnieje
- 18. Utwórz plik, jeśli nie istnieje
- 19. VLFeat - Jak naprawić "Ostrzeżenie: nazwa nie istnieje lub nie jest katalogiem"?
- 20. Jak mogę się dowiedzieć, czy obiekt implementuje daną metodę?
- 21. Jak mogę się dowiedzieć, gdzie utworzono obiekt?
- 22. scp "nie jest zwykłym plikiem"
- 23. Jeśli istnieje lub istnieje?
- 24. Jak mogę się dowiedzieć, kto jest wepchnięty w git?
- 25. . Przekierowanie htaccess, jeśli plik nie istnieje
- 26. Dowiedzieć się, czy jest potęgą b
- 27. Usuwanie początkowych ukośnik jeśli nie jest katalogiem z apache
- 28. Jak się dowiedzieć, czy adres Ethereum jest umową?
- 29. Android, Jak mogę się dowiedzieć, czy animacja została zakończona?
- 30. Jak mogę zrobić wstawkę, jeśli nie istnieje?
Ale chcę wiedzieć, czy jest to plik lub katalog, czy * nie * istnieje ... –
Jeśli to robi istnieć, to nie jest ani ryba, ani ptactwo - to nic. –
EBGreen, myślę, że właśnie wygrałeś nagrodę za najbardziej skomplikowaną interakcję z buźką/nawiasami! : o) –