我可以从我的应用程序发送.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”
请你提供一些建议来获得它吗?
答案 0 :(得分:0)
更改以下行:
[mailer addAttachmentData:[NSData dataWithContentsOfFile:file] mimeType:@"text/csv" fileName:file];
要:
NSString *fileName = [file lastPathComponent];
[mailer addAttachmentData:[NSData dataWithContentsOfFile:file] mimeType:@"text/csv" fileName:fileName];
您最初将文件名设置为整个文件路径。