2011-06-23 15 views
1

以外の別のディレクトリ "/ユーザ/学生/ライブラリ/ Application Support/iPhone /シミュレータ/ユーザ/アプリケーション/ ..."iphoneのWRITETOFILE:問題

に私の.xmlファイルを保存する方法はあります
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"accUserNames.xml"]; 
BOOL ok = [content writeToFile:appFile atomically:YES encoding:NSUnicodeStringEncoding error:nil]; 
if (!ok) { 
    NSLog(@"Error writing file !"); 
} 

私はwriteToFileしたい:私の.xmlファイルをデスクトップに、どのようにアイデア?

答えて

2

以下のコードを助け、

NSString *documentsDirectory = @"/Users/student/Desktop/"; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"accUserNames.xml"]; 
BOOL ok = [content writeToFile:appFile atomically:YES encoding:NSUnicodeStringEncoding error:nil]; 
if (!ok) { 
    NSLog(@"Error writing file !"); 
} 
+0

ありがとう、もし私がサーバーにアップロードしたいのですが?例: NSString * documentsDirectory = @ "www.blablah.com"? –

+0

あなたはファイルをサーバーにアップロードすることを意味しますか?それとも何か? –

+0

ええ、私のサーバにアップロード –

1

iPhone Simulatorの中から、書き込むパスとして@"/Users/student/Desktop/accUserNames.xml"を正常に使用できるはずです。ただし、iOSデバイスではこれを実行できません(アプリケーションのサンドボックスディレクトリに限定されます)。保存するデータのタイプに応じて、Documentsフォルダや他のフォルダに書き込むことをおすすめします。


編集:あなたの問題を理解していると思います。あなたのコードのこの部分:

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

が効果的に、これはあなたがしたい、正常位である(への「/ユーザ/学生/ライブラリ/ Application Support/iPhone /シミュレータ/ユーザ/アプリケーション/ ...」パスを検索します物事を保存する)。しかし、一時的にデスクトップに保存したいだけの場合は、appFile = @"/Users/student/Desktop/accUserNames.xml"を使用してください。

注:これは長期的な解決策ではありませんが、プログラムの出力を一時的に見たい場合は、正常に動作します。

+0

はい、 "Users/student/Desktop/accUserNames.xml" を使ってみましたが、結果は "/ Users/Student/Library/Application Support/iPhone/Simulator/User/Applications/** Users/student/Desktop/accUserNames.xml ** " –

+0

@Steve Jabs:あなたがもっと欲しいものを理解していると思うので、 – jtbandes

+0

ちょうど出力が他のディレクトリに置くことができるかどうか試してみると、もしこれがうまくいくなら、おそらく私はxmlファイルをサーバに書くことができます。 –

0

おそらくコードではありませんが、これを試すことができます: "Automator"(Utilitiesフォルダ内)を開き、 "Folder Action"を選択しました。入力フォルダとして、文書のディレクトリ(/ Users/Student/Library/Application Support/iPhone/Simulator/User/Applications/...)を指定してから、 "Files &フォルダ"、 "Duplicate Finder Items 「ファインダアイテムを移動する」を選択し、デスクトップを選択します。 「保存」を押して名前を付け、ドキュメントフォルダ内のすべてのファイルをデスクトップにコピーする必要があります。

Automator http://i52.tinypic.com/a431u1.png

0

あなたは(あなたの例では「www.blahblah.com」)サーバーにファイルをアップロードしたい場合は、書き込みにを使用して可能性がありファイルメソッドは正しいアプローチではありません。これは、ローカルファイルシステム(またはネットワーク共有にデータを書き込むためのものですが、iPhoneには該当しません)。

ウェブサーバーにデータを転送する場合は、サーバーから接続要求を受信する必要があります。その場合、アプリケーションから転送されたデータを受け入れる必要があります。ファイルシステムと同じように、 "www.blahblah.com"にファイルを書き込むことはできません。