Pracuję nad narzędziem do automatycznego montowania woluminów sieciowych na podstawie sieci bezprzewodowej, do której jest podłączony użytkownik. Montaż głośność jest proste:Określić, czy udział sieciowy istnieje przed montażem
NSURL *volumeURL = /* The URL to the network volume */
// Attempt to mount the volume
FSVolumeRefNum volumeRefNum;
OSStatus error = FSMountServerVolumeSync((CFURLRef)volumeURL, NULL, NULL, NULL, &volumeRefNum, 0L);
Jednakże, jeśli nie ma akcji w volumeURL
sieć (jeśli ktoś wyłączone lub usunięte z twardego dysku sieciowego, na przykład), Finder wyskakuje komunikat wyjaśniający ten fakt. Moim celem jest to, aby tak się nie stało - chciałbym spróbować zamontować wolumin, ale w razie awarii nie udało się go wykonać.
Czy ktoś ma jakieś wskazówki, jak to zrobić? Idealnie byłoby znaleźć sposób sprawdzenia, czy udział istnieje przed próbą jego zamontowania (aby uniknąć niepotrzebnej pracy). Jeśli to nie jest możliwe, działałby również sposób, aby powiedzieć Finderowi, by nie wyświetlał swojego komunikatu o błędzie.
Należy pamiętać, że kSoftMount && kSuppressAllUI wraz z netfs_MountURLWithAuthenticationSync, są z PrivateFrameworks. Oznacza to, że może działać w twoim bieżącym systemie, ale może zostać uszkodzony w przyszłych wydaniach (nawet kropkowych). –
Absolutnie poprawne. Opublikowalem to tylko dlatego, że nie można tego zrobić z bieżącym publicznym interfejsem API. – nall
Witam wszystkich, Utknąłem z tym samym problemem jeszcze raz !!! Czy dysponujemy czystszym rozwiązaniem dostępnym dla tego problemu? Próbowałem używać tego interfejsu API, ale dostaję błąd, że "netfs_MountURLWithAuthenticationSync" jest nieznanym identyfikatorem ... – PRIME