J'ai un chemin d'accès à un fichier contenu dans une NSString. Existe-t-il une méthode pour obtenir la taille du fichier ?
J'aime bien celui-là. Mais quelle est la mesure en octets, en Ko, etc. ? Merci aussi.
J'ai un chemin d'accès à un fichier contenu dans une NSString. Existe-t-il une méthode pour obtenir la taille du fichier ?
Que se passe-t-il si votre fichier est plus grand que INT_MAX
d'octets ? Vous pourriez vouloir convertir le résultat en size_t
ou unsigned long long int
qui permet de rendre compte avec précision de la taille des fichiers volumineux (> 2 Go).
Gardez à l'esprit que fileAttributesAtPath:traverseLink : est déprécié à partir de Mac OS X v10.5. Utilisez attributesOfItemAtPath:error:
au lieu de cela, décrite à la même URL les mentions de thesamet.
En tenant compte du fait que je suis un débutant en Objective-C, et que j'ignore les erreurs qui pourraient se produire en appelant attributesOfItemAtPath:error:
vous pouvez faire ce qui suit :
NSString *yourPath = @"Whatever.txt";
NSFileManager *man = [NSFileManager defaultManager];
NSDictionary *attrs = [man attributesOfItemAtPath: yourPath error: NULL];
UInt32 result = [attrs fileSize];
Voir l'exemple de code dans AttributsOfItemAtPath du FileManager : erreur : documentation
Le CPU se lève avec attributesOfItemAtPath:error :
Vous devez utiliser stat .
#import <sys/stat.h>
struct stat stat1;
if( stat([inFilePath fileSystemRepresentation], &stat1) ) {
// something is wrong
}
long long size = stat1.st_size;
printf("Size: %lld\n", stat1.st_size);
Vous avez raison. HFS+ définit une décomposition Unicode standard ("décomposition canonique") pour les noms de fichiers. Il n'est pas garanti que -UTF8String renvoie la bonne composition ; -fileSystemRepresentation l'est. 1
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.