B
buzz-dee
Neues Mitglied
Thread Starter
- Dabei seit
- 24.03.2003
- Beiträge
- 18
- Reaktionspunkte
- 0
Hallo Leute,
gibt es eine Möglichkeit, in Obj-C, relative Pfade zu verwenden? Ich habe neben dem Programm einen Ordner mit Daten, auf das mein Prog. zugreifen soll. Habe es mit @"./" versucht. Dann klappt's im Release- und Debug-Folder. Wenn ich die ganzen Sachen allerdings auf den Desktop ziehe, funktioniert es nicht mehr.
Habe folgende 2 Ansätze, die funktionieren:
und
Kann mir allerdings bei beiden nicht vorstellen, dass sie annähernd optimal sind. Leider hab ich in der Doku keine weiteren Anhaltspunkte gefunden :-(
gibt es eine Möglichkeit, in Obj-C, relative Pfade zu verwenden? Ich habe neben dem Programm einen Ordner mit Daten, auf das mein Prog. zugreifen soll. Habe es mit @"./" versucht. Dann klappt's im Release- und Debug-Folder. Wenn ich die ganzen Sachen allerdings auf den Desktop ziehe, funktioniert es nicht mehr.
Habe folgende 2 Ansätze, die funktionieren:
Code:
NSMutableString *path =[NSMutableString stringWithString:[[NSBundle mainBundle]bundlePath]];
for(int i=[path length]; i>0; i--){
if([[path substringWithRange:NSMakeRange(i-1, 1)] compare:@"/"]!=NSOrderedSame){
[path deleteCharactersInRange:NSMakeRange(i-1, 1)];
}else{
break;
}
}
und
Code:
NSString *path =[NSBundle mainBundle]bundlePath];
NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:[path pathComponents]];
[pathComponents removeObjectAtIndex:0];
[pathComponents removeLastObject];
NSString *newPath = [NSString stringWithFormat:@"/%@/", [pathComponents componentsJoinedByString:@"/"]];
Kann mir allerdings bei beiden nicht vorstellen, dass sie annähernd optimal sind. Leider hab ich in der Doku keine weiteren Anhaltspunkte gefunden :-(