Objective c 保存文件时用空格字符替换%20
我现在正在录制音频文件并保存到文档目录。给定的名称包含空格字符。保存到文档目录时,空格字符更改为%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]; 编辑-这是做录音和保存到本地
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不适合作为文件名。谢谢我现在用的是你建议的那个。我重命名了那个文件。