使用文件管理器创建文件副本不适用于 mac app

Posted

技术标签:

【中文标题】使用文件管理器创建文件副本不适用于 mac app【英文标题】:creating copy of file using file manager is not working for mac app 【发布时间】:2011-04-20 04:18:31 【问题描述】:

我的文档文件夹中的一个文件夹中有一个文件。我想在其他文件夹中使用其他名称创建该文件的副本。我使用的代码是

NSFileManager *fileManager = [[NSFileManager alloc] init];
NSString * filePath = [NSHomeDirectory() stringByAppendingPathComponent:
    [NSString stringWithFormat:@"Documents/test/test1/%@%@%@",str,currentaudioTobPlayed,@".mp3"]];
NSString * filePath2 = [NSHomeDirectory() stringByAppendingPathComponent:
    [NSString stringWithFormat:@"Documents/test/test1/"]];

NSLog(@"filePat %@",filePath);
NSLog(@"filePath2 %@",filePath2);
NSLog(@"filePath2 %@",fileManager);

[fileManager copyItemAtPath:filePath toPath:filePath2 error:NULL];
[fileManager release];

但是这段代码不起作用。请帮忙!

【问题讨论】:

@Bavariousthanx!它的工作。如果你会回答我会投票给你。无论如何都非常感谢 我已将评论移至完整答案。 【参考方案1】:

在:

NSString * filePath2 = [NSHomeDirectory() stringByAppendingPathComponent:
    [NSString stringWithFormat:@"Documents/test/test1/"]];

您没有指定目标文件名:~/Documents/test/test1 是一个目录。

你可以这样做:

NSString *sourceName = [NSString stringWithFormat:@"%@%@.mp3",
    str, currentaudioTobPlayed];

// Choose the destination file name
NSString *destName = [NSString stringWithFormat:@"Copy of %@", sourceName];

NSString * filePath = [NSHomeDirectory() stringByAppendingPathComponent:
[NSString stringWithFormat:@"Documents/test/test1/%@", sourceName]];

NSString * filePath2 = [NSHomeDirectory() stringByAppendingPathComponent:
    [NSString stringWithFormat:@"Documents/test/test1/%@", destName]];
// Replace Documents/test/test1 with another directory under home,
// or replace the whole string with an entirely different directory

【讨论】:

@Swastik,请注意让您的问题可见的礼貌方式是post a bounty。

以上是关于使用文件管理器创建文件副本不适用于 mac app的主要内容,如果未能解决你的问题,请参考以下文章

Mac - NSFileMangager setIcon:forFile:options: 不适用于文件夹

tailwindcss 指令不适用于项目外部的样式文件

slowcheetah 不适用于 app.config

.jsp 文件不适用于 Google App Engine 留言簿教程

在 Windows 上写入二进制文件时如何强制 1 字节填充 - 适用于 mac,不适用于 win

使用 sed 删除匹配模式不适用于 mac os Catalina