1

別のフォルダから画像を呼び出したいのですが、これを実装するのを手伝ってください。

私は自分のフォルダにこの構造を持っています:

フォルダ1

  file1

     image1.jpg

  file2

     image2.jpg

  file3

     image3.jpg

フォルダ2 ....

各ファイルの中に %d 画像が 1 つあります%.jpg

画像をループで呼び出したいのですが、

 for (i = 1; i > image; i++)
{
    NSString *image = [NSString stringWithFormat:@"image%d.jpg", i];

しかし、私の質問は、フォルダーに入って画像を取得する方法です

私はこのようなものを持つことができます:

 stringWithFormat:@"Folder%d/File%d/image%d" ofType:@"jpg"

最善の方法は何ですか?

前もって感謝します!

4

3 に答える 3

2

これは、私にとって役立ついくつかの便利なコード スニペットです。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *mapDirPath = [documentsDirectory stringByAppendingPathComponent:@"/MapCache"];

// ドキュメントディレクトリにディレクトリを作成

NSError* error;
if (![[NSFileManager defaultManager] fileExistsAtPath:mapDirPath])
    [[NSFileManager defaultManager] createDirectoryAtPath:mapDirPath withIntermediateDirectories:NO attributes:nil error:&error];

// 画像をロード

NSString *filePath = [self.localImagePath stringByAppendingPathComponent: key];
if ( [[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    UIImage* image = [UIImage imageWithContentsOfFile:filePath];
    return image;
}

// 画像の書き込み

[[NSFileManager defaultManager] createFileAtPath:filePath contents:remoteData attributes:nil];

それが役立つことを願っています

もちろん、バンドルから画像を読み取る場合は、代わりにこれが必要です [[NSBundle mainBundle] pathForResource: @"filename" ofType:@"png" directory: @"directory1"]

于 2012-10-15T15:31:23.787 に答える
0

ライブラリパスに画像パスを追加するフォルダと画像を繰り返します。

NSString * libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];

for (NSUInteger f = 1; f <= numFolders; i++) {

    for (NSUInteger i = 1; i <= numImages; i++) {

        // Create the image path
        NSString * imagePath = [NSString stringWithFormat:@"%@/Folder%d/File%d/image%d.jpg", libraryPath, f, i, i];

        // Check if file exists
        if ( [[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
            UIImage * image = [UIImage imageWithContentsOfFile:imagePath];

            // Use image...
        }
        else {
            NSLog(@"Image not found.");
        }
    }
}
于 2012-10-15T16:32:44.013 に答える
0

そうです、これは私がそれを行う方法です。

for (f = 1; f <= numberOfFolders; i++) {
    for (i = 1; i <= numberOfImages; i++) {
        NSString* file = [NSString stringWithFormat: @".../Folder%d/File%d/image%d.jpg", f, i, i];
        NSImage* image = [NSImage imageNamed: file];

        // Do something with the image
    }
}

注: Folder1/Folder2 などの場所がわからないので、コードで「.../」を使用しました。その部分を適切に埋めるようにしてください。

于 2012-10-15T15:42:32.253 に答える