Objective c 保存文件时用空格字符替换%20

Objective c 保存文件时用空格字符替换%20,objective-c,file,save,space,Objective C,File,Save,Space,我现在正在录制音频文件并保存到文档目录。给定的名称包含空格字符。保存到文档目录时,空格字符更改为%20。我想知道如何正确保存,使音频文件名包含空格字符 NSString *myDBnew = [documentsDirectory stringByAppendingPathComponent:recordingAudioName ]; NSURL *recordedTmpFile = [NSURL fileURLWithPath:myDBnew]; 编辑-这是做录音和保存到本地

我现在正在录制音频文件并保存到文档目录。给定的名称包含空格字符。保存到文档目录时,空格字符更改为%20。我想知道如何正确保存,使音频文件名包含空格字符

    NSString *myDBnew = [documentsDirectory stringByAppendingPathComponent:recordingAudioName ];
    NSURL *recordedTmpFile = [NSURL fileURLWithPath:myDBnew];
编辑-这是做录音和保存到本地目录。
recorder=[[AVAudioRecorder alloc]initWithURL:RecordedTempFile设置:记录设置错误:&错误]

请使用

-(BOOL)writeToFile:选项:错误:
而不是
-(BOOL)writeToURL:选项:错误:

writeToFile
NSString
作为参数(而不是
NSURL
)。空间是这样保存的

NSString *myDBnew = [documentsDirectory stringByAppendingPathComponent:recordingAudioName];
NSerror *error;
if (![data writeToFile:myDBnew options:0 error:&error]) {
    // Error handling
}

您正在使用NSURL,而空格是URL中的无效字符。这就是它被转换为%20的原因。

这是您获取文件名的方式,您是如何保存文件的?音频文件是否为NSData?我已更新了我的问题。我使用AVAudioRecorder开始录制并自动保存到文档目录。为什么要否决这个?如果您想将NSData保存到本地文件,这是完全正确的!我现在正在使用AVAudioRecorder,我需要用空格保存文件名。我该怎么办?recorder=[[AVAudioRecorder alloc]initWithURL:RecordedTempFile设置:记录设置错误:&错误];恐怕你不能。AVAudioRecorder只接受URL。您可能可以使用临时文件(不带空格)并在以后重命名它?是的。我也会这样尝试。谢谢:)是的..没错..我应该如何允许有空格字符?我需要使用NSURL开始使用AVAudioRecorder进行录制。由于您必须使用
NSURL
,所以录制时必须使用%20。录制后,您可以将
NSFileManager
moveItemAtPath
一起使用到其他文件名。@KhantThuLinn文件名中有%20有什么问题?这真的是个问题吗?:D…%20不适合作为文件名。谢谢我现在用的是你建议的那个。我重命名了那个文件。