J'essayais d'accéder au répertoire temporaire dans Swift. En Objective-C, je pourrais utiliser le code suivant pour le faire:Accéder au répertoire temporaire dans Swift
- (NSString *)tempDirectory {
NSString *tempDirectoryTemplate =
[NSTemporaryDirectory() stringByAppendingPathComponent:@"XXXXX"];
const char *tempDirectoryTemplateCString = [tempDirectoryTemplate fileSystemRepresentation];
char *tempDirectoryNameCString = (char *)malloc(strlen(tempDirectoryTemplateCString) + 1);
strcpy(tempDirectoryNameCString, tempDirectoryTemplateCString);
char *result = mkdtemp(tempDirectoryNameCString);
if (!result) {
return nil;
}
NSString *tempDirectoryPath = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:tempDirectoryNameCString length:strlen(result)];
free(tempDirectoryNameCString);
return tempDirectoryPath;
}
Cependant, je suis un peu confondez de la conversion de type et de coulée de Objective-C à Swift, comme const char *
ou CMutablePointer<CChar>
. Y a-t-il des documents que je devrais examiner?
Merci.
Notez que la fonction BSD 'mkdtemp()' est différent de la méthode 'createDirectoryAtPath' NSFileManager, car il crée un nom de répertoire * * unique à partir du modèle donné. –
@Grimxn Merci! Je vais essayer plus tard. BTW semble 'createDirectoryAtPath (chemin: String !, attributs: NSDictionary!)' Est obsolète, maintenant c'est 'createDirectoryAtURL: withIntermediateDirectories: attributes: error:'. Et est-ce que cela signifie que je pourrais utiliser 'createFileAtPath()' pour créer un fichier temporaire avec la même méthode? –
@MartinR donc je devrais créer mon nom unique si j'utilise createDirectoryAtPath? –