Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:电子邮件附件中的文件名_Ios_Iphone_Email Attachments_Long Filenames - Fatal编程技术网

iOS:电子邮件附件中的文件名

iOS:电子邮件附件中的文件名,ios,iphone,email-attachments,long-filenames,Ios,Iphone,Email Attachments,Long Filenames,我可以从我的应用程序中发送一个.csv文件作为附件,但我想缩短该附件的名称文件,因为将有一堆csv文件发送给收件人 一段代码: ... if (dorsalesPorTramoYcontrol && dorsalesPorTramoYcontrol.count ) { NSMutableString *mainString = [[ NSMutableString alloc]initWithSt

我可以从我的应用程序中发送一个.csv文件作为附件,但我想缩短该附件的名称文件,因为将有一堆csv文件发送给收件人

一段代码:

...      
if (dorsalesPorTramoYcontrol && dorsalesPorTramoYcontrol.count )
                {
                    NSMutableString *mainString = [[ NSMutableString alloc]initWithString:@"dorsal,paso,tiempo\n"];

                    for (NSManagedObject *get in dorsalesPorTramoYcontrol) {

                         //dorsales
                        NSString *string =[get valueForKey:@"dorsal"];
                        [mainString appendFormat:@"%@,",string];

                        //paso
                        string = [get valueForKey:@"paso"];
                        string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""];
                        [mainString appendFormat:@"%@,",string];

                        //tiempo
                        string = [get valueForKey:@"tiempo"];
                        string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""];
                        [mainString appendFormat:@"%@",string];

                                [mainString appendFormat:@"\n"];
                        }

                    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
                    NSString *documentsDirectoryPath = [paths objectAtIndex:0];

file = [NSString stringWithFormat:@"%@/Tramo%@Control%@.csv", documentsDirectoryPath,section,control];

                    NSError *csVerror= NULL;
                    BOOL written = [mainString writeToFile:file atomically:YES encoding:NSUTF8StringEncoding error:&csVerror];
                    if (!written)  {
                        NSLog( @"Writing failed, error = %@",csVerror);
                    }else {
                        NSLog(@"Data saved! File path = %@",file);
                        [self composeEmail];
                    }
                }
    }

    -(void)composeEmail{

        if ([MFMailComposeViewController canSendMail])
        {

            MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
            mailer.mailComposeDelegate = self;
            [mailer setSubject:[NSString   stringWithFormat:@"Resultados Tramo: %@ - Control: %@", section, control]];
            NSArray *toRecipients = [NSArray arrayWithObjects:@"somebodymail@mail.com", nil];
            [mailer setToRecipients:toRecipients];

            // Logo
            UIImage *myImage = [UIImage imageNamed:@"logo.png"];
            NSData *imageData = UIImagePNGRepresentation(myImage);
            [mailer addAttachmentData:imageData mimeType:@"image/png" fileName:@"Icon"];


            [mailer addAttachmentData:[NSData dataWithContentsOfFile:file] mimeType:@"text/csv" fileName:file];
            NSString *emailBody =
            [NSString   stringWithFormat:@"Resultados Tramo: %@ - Control: %@ \nDorsal - Paso - Tiempo", section, control];
            [mailer setMessageBody:emailBody isHTML:NO];
            mailer.modalPresentationStyle = UIModalPresentationPageSheet;
            [self presentViewController:mailer animated:YES completion:nil];
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure"
                                                            message:@"Your device doesn't support the composer sheet"
                                                           delegate:nil
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles: nil];
            [alert show];
        }
    }
文件名如下所示:

<_var_mobile_Applications_BE8CE610-A83E-4C79-8B9C-0263FA6881D6_Documents_Tramo2Control4.csv>

我希望它是“Tramo2Control4.csv”


您能提供一些建议吗?

更改以下行:

[mailer addAttachmentData:[NSData dataWithContentsOfFile:file] mimeType:@"text/csv" fileName:file];
致:

您最初将文件名设置为整个文件路径

NSString *fileName = [file lastPathComponent];
[mailer addAttachmentData:[NSData dataWithContentsOfFile:file] mimeType:@"text/csv" fileName:fileName];