Muszę sprawić, aby moja aplikacja delphi mogła sprawdzić, czy plik skopiowany przy użyciu Robocopy jest dostępny, gdy jego ścieżka przekracza 255 znaków. Próbowałem zwykłego "If FileExists (MyFile) then ...", ale zawsze zwraca "false", nawet jeśli plik tam jest.Delphi: jak sprawdzić, czy plik istnieje (ścieżka powyżej 255 znaków)
Próbowałem również uzyskać datę pliku, ale dostaję 1899/12/30, które można uznać za pustą datę.
Wyszukiwanie plików również niczego nie zwraca.
Dzięki za odpowiedź. To rozwiązanie działa świetnie na lokalnych ścieżkach, takich jak e: \ myfilepath, ale utknąłem w ścieżkach UNC, nawet z "If FileExists ('\ \? \ UNC \' + MyFile), a następnie ..." – Fab
Ścieżki UNC działają dobrze tutaj. Jestem przekonany, że moja odpowiedź jest wszystkim, czego potrzebujesz. Coś innego będzie nie tak. Po uzyskaniu przedrostka '\\? \' Unikniesz limitu 260. –
@Fab: Jeśli 'MyFile' zawiera standardową ścieżkę UNC, musisz usunąć przed nią' '\\ '' przedrostek '' \\? \ UNC \ ''. IOW, ''\\ server \ path'' musi stać się'' \\? \ UNC \ server \ path'', a nie '' \\? \ UNC \\\ server \ path'' jak twój kod obecnie wykonuje . –