2012-05-10 21 views
2

私はNSFileManagercopyItemAtURL:toURL:error:を使用して、UNIX実行ファイル(コマンドラインプログラム)をあるディレクトリから別のディレクトリに移動しようとしていますが、URLタイプがサポートされていないというエラーが表示されます。これは、ファイルの拡張子がなければ、ディレクトリと見なされているが、わからないからです。このタイプのファイルをNSFileManagerで移動することは可能ですか?NSFileManagerを使用してUNIX実行可能ファイルをコピーするにはどうすればよいですか?

編集:記録されますどのような

The file couldn't be opened because the specified URL type isn't supported.

そして最後に:ここに は私のコード

#define SAVE_DIR [@"~/Library/Prog" stringByExpandingTildeInPath] 
#define PROG_PATH [SAVE_DIR stringByAppendingString:@"/ProgCom"] 
#define RESOURCES [[NSBundle mainBundle] resourcePath] 
#define LOCAL_PROG [RESOURCES stringByAppendingString:@"/ProgCom"] 

-(void)moveProg 
{ 
    NSError *error = nil; 
    NSURL *fromURL = [NSURL URLWithString:LOCAL_PROG]; 
    NSURL *toURL = [NSURL URLWithString:PROG_PATH]; 

    NSLog(@"%@", [fromURL path]); 
    NSLog(@"%@", [toURL path]); 

    if ([fMan fileExistsAtPath:[fromURL path]]) { 
     [fMan copyItemAtURL:fromURL 
         toURL:toURL 
         error:&error]; 
     if (error) 
      [NSApp presentError:error]; 
    } 
} 

私は受信エラーです

fromURL = /Users/Nick/Library/Developer/Xcode/DerivedData/Prog-dpnblqaraeuecyadjgizbinfrtcm/Build/Products/Debug/Prog.app/Contents/Resources/ProgCom 

toURL = /Users/Nick/Library/Prog/ProgCom 
+0

正常に動作するはずです。特別なトリックはありませんし、ファイルの拡張子については気にしません。あなたのURLが間違っているようです。両方のURLを記録し、質問に投稿してください。 –

答えて

19

問題はあなたです」再使用:+[NSURL URLWithString:] 。あなたが実際にそれを与えていないので、これは無効なURLを生成しています。あなたが望むものは+[NSURL fileURLWithPath:]で、URLはfile:///Users/Nick/...となります。

+0

うわー...私は 'fileURLWithPath'について忘れてしまって、本当に馬鹿だと感じます。お手伝いありがとう。 – sud0

関連する問題