Colección de citas famosas - Slogan de motivación - El desarrollo de IOS genera archivos txt.

El desarrollo de IOS genera archivos txt.

Al principio lo escribí así, pero luego descubrí que informé un error en un sistema de alta gama (sobre el contenido del error: NSCocoaErrorDomain:257).

Posteriormente se solucionó. Tomar apuntes.

1, en sistemas inferiores a iOS13. El formato para crear una carpeta es el siguiente:

+(ns string *)tmpLogPath

{

ns string * docPath = [nshomeditory() stringByAppendingPathComponent: @"Biblioteca "];

ns string * dirPath =[docPath stringByAppendingPathComponent:@"mi registro"];

ns string * ruta de archivo =[dirPath stringByAppendingPathComponent:@"tmp log . txt" ];

Ruta del archivo de retorno;

}

+(void)escribir tmplog:(ns string *)aMsg

{

ns cadena * ruta del archivo =[[self class]tmpLogPath];

if (![[NSFileManager administrador predeterminado]filexistsatpath:ruta del archivo]){

BOOL isDir = NO

BOOL hasDir =[[Administrador predeterminado de NSFileManager]filexistsatpath:la ruta del archivo es el directorio:& amp;isDir];

If (!hasDir ||! es dir ) {

[[Administrador predeterminado de NSFileManager]createDirectoryAtPath:Ruta del archivo en el directorio intermedio: Ninguno Atributos: Ninguno Error: Ninguno];

}

}

NSError *Error;

ns string * content =[ns string stringwithcontentsofile:ruta del archivo

Codificación: NSUTF8StringEncoding

Error: Error];

ns string * new Content =[ns string string with format:@"%@\n%@",content,aMsg];

[nuevo contenido escribir en archivo: ruta del archivo atómico: SÍ codificación: nsu TF error de codificación de 8 cadenas: nulo];

}

+(void)clearTmpLog

{

ns string * ruta del archivo =【[self class】tmpLogPath】;

[@““escribir en el archivo: ruta del archivo atómica: SÍ codificación: nsu TF 8 error de codificación de cadena: nulo】;

}

2, pero en iOS13, no puedes escribir así. El sistema creará una carpeta llamada * * * *. txt, se producirán errores al escribir.

Se informará un error: NSCocoaErrorDomain:257 is.

nsfilereadnopermission error = 257, //Error de lectura (problema de permiso)

Entonces puedes escribir así:

+(ns string *)tmpLogPath {

p>

cadena ns * ruta del documento = [NSSearchPathForDirectoriesInDomains(directorio nslibrary, NSUserDomainMask, YES) últimoObjeto];

cadena ns * ruta del archivo = [ruta del documento stringByAppendingPathComponent:@“ mi registro/tmp log. txt"];

returnfilePath

}

+ (void) escribe tmplog: (ns string *) aMsg {

ns string * ruta de campo = [[self class]tmpLogPath];

NSLog (@"Tamaño de archivo actual: % LLU", [tamaño de archivo propio con ruta:ruta de campo]);

NSFileManager * manager =【Administrador predeterminado de NSFileManager】;

If (![managerfilexistsatpath:ruta del campo]){

NSError *Error;

[aMsgwriteToFile:ruta del campo atómica:YES codificación:nsu TF 8 error de codificación de cadena:& Error];

if (error) {

NSLog(@"Error de escritura: % @ \n" , [Descripción de localización del error]);

}

} De lo contrario {

NSError * error;

NSError * writeError

ns string * content =【ns string stringwithcontentsofile:ruta del campo

? Codificación: NSUTF8StringEncoding

Error: Error];

If (Error) {

NSLog(@"Error de lectura: % @\n", [Error localizado descripción]);

}

ns cadena * nuevo contenido =[ns cadena cadena con formato:@"% @\n %@",content,aMsg];< /p >

[newContentwriteToFile:ruta del campo atómica:YES codificación:nsu TF 8 error de codificación de cadena:& error de escritura];

if (error de escritura){

NSLog (@" Error de escritura: % @\n", [writeerrorlocalized descripción]);

}

}

}

//Obtener el tamaño de archivo

+(unsignedlonglong)fileSizeWithPath:(ns string *)ruta {

signedlonglongfileSize = 0;

NSFileManager * archivo

manager = [administrador predeterminado de NSFileManager];

if ([filemanagerfilexistsatpath:path]){

NSError * error = nil

diccionario ns * file dict =[ fileManagerattributesOfItemAtPath:error de ruta:& error];

if (! error y error. & fileDict) {

fileSize = [filedict fileSize];

}

}

returnfileSize

}

+(void)clearTmpLog {

NSError *Error;

NSFileManager * manager =[administrador predeterminado de NSFileManager];

ns string * ruta del archivo =[[self class]tmpLogPath];

[managerremoveItemAtPath:filepath error: & Error];

If (Error) {

NSLog(@"Error al eliminar: %@\n", [Descripción de localización del error]);

}

}