NSString * path=[ NSSearchPathForDirectoriesInDomains (NSDocumentDirectory,NSUserDomainMask,YES)
objectAtIndex : 0];
path=[path stringByAppendingPathComponent : @"/music/last night.mp3"];
// 判断用于存放下载文件的目录是否存在
if (![[NSFileManager defaultManager] fileExistsAtPath:[path stringByDeletingLastPathComponent]])
{
[[NSFileManager defaultManager]
createDirectoryAtPath:[path stringByDeletingLastPathComponent]
withIntermediateDirectories:YES attributes:nil error:nil];
}
// 文件在服务器上的路径
//NSString *urlStr = @"http://192.168.168.24/music/last night 中.mp3"; // url中包含中文
NSString *urlStr = @"http://192.168.168.24/music/last night.mp3"; // url中不包含中文
//urlStr = [urlStr stringByReplacingOccurrencesOfString:@" " withString:@""]; // 去掉字符串中的空格
//urlStr = [urlStr stringByReplacingOccurrencesOfString:@" " withString:@"20%"]; // 将空格替换为其它字符串
// 支持中文编码,处理URL中包含中文的情形
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:enc];
NSURL *url = [NSURL URLWithString:urlStr];
// 执行下载
self.theRequest = [ASIHTTPRequest requestWithURL:url];
[self.theRequest setDownloadDestinationPath:path];
[self.theRequest setDownloadProgressDelegate:self.progressView];
[self.theRequest startSynchronous];
附录:URL中的特殊字符