URLからドキュメントフォルダにファイルをコピーするにはどうすればよいですか?

タレントシウ

URLからテキストファイルをコピーし、アプリのドキュメントフォルダーに配置/上書きしてから、データ変数に読み戻す必要があります。私は次のコードを持っています:

NSData *data;

//get docsDir
NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir=[paths objectAtIndex:0];

//get path to text.txt
NSString *filePath=[docsDir stringByAppendingPathComponent:@"text.txt"];

//copy file
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;

if([fileManager fileExistsAtPath:filePath]==YES){
    [fileManager removeItemAtPath:filePath error:&error];
}

NSString *urlText = @"http://www.abc.com/text.txt";

if (![[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
    NSFileManager *fileManager=[NSFileManager defaultManager];
    [fileManager copyItemAtPath:urlText toPath:filePath error:NULL];
}

//Load from file
NSString *myString=[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];

//convert string to data
data=[myString dataUsingEncoding:NSUTF8StringEncoding];

ビルドと準拠は良好ですが、ドキュメントフォルダーにtext.txtファイルを作成してから、データ変数に何かを渡すことができません。私はIOSとXcodeの両方の初心者です、どんな手がかりも高く評価されます。ありがとう!

マティアス・バウフ

NSFileManagerは、ローカルパスのみを処理できます。URLを指定しても、何の役にも立ちません。

copyItemAtPath:toPath:error:エラーパラメータを取ります。次のように使用します。

NSError *error;
if (![fileManager copyItemAtPath:urlText toPath:filePath error:&error]) {
    NSLog(@"Error %@", error);
}

次に、次のエラーが発生します。

Error Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be
completed. (Cocoa error 260.)" UserInfo=0x9a83c00 {NSFilePath=http://www.abc.com/text.txt, 
NSUnderlyingError=0x9a83b80 "The operation couldn’t be completed. 
No such file or directory"}

http://www.abc.com/text.txt有効なパスではないため、でファイルを読み取ることができません


Sunny Shahが説明なしで述べたように、最初にURLでオブジェクトをフェッチする必要があります。

NSString *urlText = @"http://www.abc.com/text.txt";

if (![[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
    NSURL *url = [NSURL URLWithString:urlText];
    NSError *error;
    NSData *data = [[NSData alloc] initWithContentsOfURL:url options:0 error:&error];
    if (!data) { // check if download has failed
        NSLog(@"Error fetching file %@", error);
    }
    else {
        // successful download
        if (![data writeToFile:filePath options:NSDataWritingAtomic error:&error]) { // check if writing failed
            NSLog(@"Error writing file %@", error);
        }
        else {
            NSLog(@"File saved.");
        }
    }
}

常にエラーをチェックしてください!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ドキュメントフォルダにファイルが存在するかどうかを確認するにはどうすればよいですか?

分類Dev

ドキュメントファイルをwagtailからダウンロード可能にするにはどうすればよいですか?

分類Dev

Windows 7のフォルダからファイル名をテキストとしてコピーするにはどうすればよいですか?

分類Dev

ルーターにポートフォワーディングを設定せずに、コンピューターがインターネットからファイルをダウンロードするにはどうすればよいですか?

分類Dev

Googleドキュメントをファイルシステム内のフォルダと同期するにはどうすればよいですか?

分類Dev

フォルダとサブフォルダからファイルのみを再帰的にコピーするにはどうすればよいですか?

分類Dev

1つのフォルダから複数のフォルダにファイルをコピーするにはどうすればよいですか

分類Dev

独自のJARファイルからフォルダーをコピーする関数をテストするにはどうすればよいですか?

分類Dev

リストから新しいフォルダにファイルをコピーするにはどうすればよいですか?

分類Dev

リストから新しいフォルダにファイルをコピーするにはどうすればよいですか?

分類Dev

RegExを使用してファイルからドキュメントコメントを取得するにはどうすればよいですか?

分類Dev

OneDriveアカウントからドキュメントフォルダーのリンクを解除するにはどうすればよいですか?

分類Dev

ドキュメントをpickleファイルに保存するにはどうすればよいですか?

分類Dev

Dockerコンテナからホストコンピュータにファイルをコピーするにはどうすればよいですか?

分類Dev

MTP(Androidフォン)にファイルをコピーするにはどうすればよいですか?

分類Dev

ドキュメントフォルダをダウンロードフォルダの外に戻すにはどうすればよいですか?

分類Dev

Android Studio:ドキュメントフォルダーを検索やその他の機能から除外するにはどうすればよいですか?

分類Dev

複数のWordファイルからExcelの個別のワークシートにテーブルをコピーし、ワークシートにWordドキュメントの名前を付けるにはどうすればよいですか?

分類Dev

コマンドラインからメールフォルダをダウンロードするにはどうすればよいですか?

分類Dev

コマンドラインからメールフォルダをダウンロードするにはどうすればよいですか?

分類Dev

BATCHスクリプトを含むファイルを、あるドライブのフォルダーから別のドライブの同じ名前のフォルダーにコピーするにはどうすればよいですか?

分類Dev

Finderのコンテキストメニューから新しいファイルを作成するにはどうすればよいですか?

分類Dev

フォルダにあるすべてのファイル名をメモ帳にコピーするにはどうすればよいですか?

分類Dev

フォルダーをプロジェクトからドキュメントディレクトリにコピーするにはどうすればよいですか?

分類Dev

テンプレートから別のドキュメントにスタイルをコピーするにはどうすればよいですか

分類Dev

scpコマンドを使用して1つのリモートサーバーから別のリモートサーバーにファイルとフォルダーをコピーするにはどうすればよいですか?

分類Dev

Pythonでドキュメントパスをフォルダ名とドキュメント名に分割するにはどうすればよいですか?

分類Dev

_siteフォルダー全体をJekyllブログサイトからLinuxでホストされているメインWebサイトのブログフォルダーにコピーするにはどうすればよいですか。

分類Dev

Linuxコマンドラインからフォルダをコピーするにはどうすればよいですか?

Related 関連記事

  1. 1

    ドキュメントフォルダにファイルが存在するかどうかを確認するにはどうすればよいですか?

  2. 2

    ドキュメントファイルをwagtailからダウンロード可能にするにはどうすればよいですか?

  3. 3

    Windows 7のフォルダからファイル名をテキストとしてコピーするにはどうすればよいですか?

  4. 4

    ルーターにポートフォワーディングを設定せずに、コンピューターがインターネットからファイルをダウンロードするにはどうすればよいですか?

  5. 5

    Googleドキュメントをファイルシステム内のフォルダと同期するにはどうすればよいですか?

  6. 6

    フォルダとサブフォルダからファイルのみを再帰的にコピーするにはどうすればよいですか?

  7. 7

    1つのフォルダから複数のフォルダにファイルをコピーするにはどうすればよいですか

  8. 8

    独自のJARファイルからフォルダーをコピーする関数をテストするにはどうすればよいですか?

  9. 9

    リストから新しいフォルダにファイルをコピーするにはどうすればよいですか?

  10. 10

    リストから新しいフォルダにファイルをコピーするにはどうすればよいですか?

  11. 11

    RegExを使用してファイルからドキュメントコメントを取得するにはどうすればよいですか?

  12. 12

    OneDriveアカウントからドキュメントフォルダーのリンクを解除するにはどうすればよいですか?

  13. 13

    ドキュメントをpickleファイルに保存するにはどうすればよいですか?

  14. 14

    Dockerコンテナからホストコンピュータにファイルをコピーするにはどうすればよいですか?

  15. 15

    MTP(Androidフォン)にファイルをコピーするにはどうすればよいですか?

  16. 16

    ドキュメントフォルダをダウンロードフォルダの外に戻すにはどうすればよいですか?

  17. 17

    Android Studio:ドキュメントフォルダーを検索やその他の機能から除外するにはどうすればよいですか?

  18. 18

    複数のWordファイルからExcelの個別のワークシートにテーブルをコピーし、ワークシートにWordドキュメントの名前を付けるにはどうすればよいですか?

  19. 19

    コマンドラインからメールフォルダをダウンロードするにはどうすればよいですか?

  20. 20

    コマンドラインからメールフォルダをダウンロードするにはどうすればよいですか?

  21. 21

    BATCHスクリプトを含むファイルを、あるドライブのフォルダーから別のドライブの同じ名前のフォルダーにコピーするにはどうすればよいですか?

  22. 22

    Finderのコンテキストメニューから新しいファイルを作成するにはどうすればよいですか?

  23. 23

    フォルダにあるすべてのファイル名をメモ帳にコピーするにはどうすればよいですか?

  24. 24

    フォルダーをプロジェクトからドキュメントディレクトリにコピーするにはどうすればよいですか?

  25. 25

    テンプレートから別のドキュメントにスタイルをコピーするにはどうすればよいですか

  26. 26

    scpコマンドを使用して1つのリモートサーバーから別のリモートサーバーにファイルとフォルダーをコピーするにはどうすればよいですか?

  27. 27

    Pythonでドキュメントパスをフォルダ名とドキュメント名に分割するにはどうすればよいですか?

  28. 28

    _siteフォルダー全体をJekyllブログサイトからLinuxでホストされているメインWebサイトのブログフォルダーにコピーするにはどうすればよいですか。

  29. 29

    Linuxコマンドラインからフォルダをコピーするにはどうすればよいですか?

ホットタグ

アーカイブ