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