2013-10-31 36 views
0

我可以從我的應用程序發送一個.csv文件作爲附件,但我想縮短該附件的名稱文件,因爲會有一堆傳送到該文件的csv文件接受者。iOS:電子郵件附件中的文件名

一段代碼:

...  
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:@"[email protected]", 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

更改以下行:

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

要:

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

您最初設置的文件名是整個文件路徑。