2013-03-28 55 views
1

我是從畫廊現在圖像得到顯示應用程序,但同時獲得圖像的圖像的名字我想保存在文檔目錄如何設置,我們要保存在文件目錄

對於這種形象我使用下面的代碼

-(void)imagePickerController:(UIImagePickerController *)picker 
     didFinishPickingImage : (UIImage *)image 
       editingInfo:(NSDictionary *)editingInfo 
{ 
    selectImage.image = image; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString* path = [documentsDirectory stringByAppendingPathComponent: 
         [NSString stringWithString: @"test.png"] ]; 
    NSData* data = UIImagePNGRepresentation(image); 
    [data writeToFile:path atomically:YES]; 
    [picker dismissModalViewControllerAnimated:YES]; 
} 

現在我的問題是你可以看到,我給名稱爲test.png,但我想設置實際圖像的名稱。所以每次用戶選擇不同的形象,不同的名稱獲取存儲

憑什麼我路徑設置圖像的實際名稱

plz幫助謝謝:)

+1

當您選擇當時的圖像以圖像名稱作爲字符串,並將該字符串傳遞到test.png的位置,然後它可以正常工作。 – Balu 2013-03-28 06:28:10

+0

多數民衆贊成在如何獲得圖像名稱的問題? – user2189388 2013-03-28 06:35:15

+0

你是否以url的形式獲取圖片? – Balu 2013-03-28 06:37:59

回答

1

你可以用下面的代碼來獲取新的名字來存儲您的圖像

NSError *error = nil; 

獲取文件的目錄路徑

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

抓取內容的目錄,在位置的所有文件

NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[paths objectAtIndex:0] error:&error]; 

現在得到的資源數目的計數,並通過添加創建新的文件名1到當前計數

NSString *newFileName = [NSString stringWithFormat:@"Test_%d.png",[contents count]+1]; 
+0

這個邏輯不是全球性的。假設你有4張圖片。那麼最後的圖片將是Test_5.png。如果你刪除Test_4.png.然後添加新的圖像它不能被添加,因爲根據你的邏輯它將是Test_5.png.the重複將發生 – 2013-06-05 07:24:09

+0

代碼發佈在這裏僅供參考,不完整的代碼發佈,它的幫助不是全部工作@MSB – 2013-06-18 04:13:21

1

您可以使用下面兩行獲得圖像名稱....可能是它會用全力爲你..

NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"]; 

NSString *imageName = [imagePath lastPathComponent]; 
每次
0
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 

    NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"]; 

NSString *originalImg = [imagePath lastPathComponent]; 

}