2011-08-16 16 views
49

Próbuję uzyskać ścieżkę pliku o nazwie "temp.pdf", który znajduje się w folderze NSTemporaryDirectory (sprawdziłem, plik istnieje).Pobierz ścieżkę pliku i URL dla pliku w katalogu tymczasowym

Używam tego:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"pdf" inDirectory:NSTemporaryDirectory()]; 

Próbowałem z:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp.pdf" ofType:@"" inDirectory:NSTemporaryDirectory()]; 

oraz:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"pdf"]; 

Ale wydaje się, że to nie działa, zwracana jest wartość zawsze zero.

Jestem trochę zdezorientowany, ktoś może mi pomóc?

Dziękuję.

Odpowiedz

120

NSTemporaryDirectory() dostarcza pełną ścieżkę do katalogu tymczasowego. Zamiast używać swój mainBundle próbowałeś

NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"temp.pdf"]; 

Jeśli potrzebujesz URL zamiast tego zrobić:

NSURL *furl = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"temp.pdf"]]; 
+0

OK, kiedy to zrobię, chcę użyć ścieżki do plików z [UIDocumentInteractionController interactionControllerWithURL: filepath]; Zrobiłem [NSURL urlWithString: filepath], ale Xcode mówi: "Nieprawidłowy schemat (null) .Tylko schemat plików jest obsługiwany." – HasgardLucian

+19

Wypróbuj 'NSURL * furl = [NSURL plikURLWithPath: [NSTemporaryDirectory() stringByAppendingPathComponent: @" temp.pdf "]];' – Joe

+0

Co jeśli chcemy zwrócić wszystkie pliki pdf w katalogu temp ?? –

13

Swift 2.0

let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(),isDirectory: true) 
let fileURL = tmpDirURL.URLByAppendingPathComponent("stuff").URLByAppendingPathExtension("gif") 
print("FilePath: \(fileURL.path)") 
0

Dla Swift 3.0

var fileUrl: URL = URL(fileURLWithPath: NSTemporaryDirectory()) 
fileUrl.appendPathComponent("foo") 
fileUrl.appendPathExtension("bar") 
Powiązane problemy