在文件名中保存带有斜线的文件-objective-c
Posted
技术标签:
【中文标题】在文件名中保存带有斜线的文件-objective-c【英文标题】:Saving files with slash in file name - objective-c 【发布时间】:2011-09-23 12:24:44 【问题描述】:我无法保存文件名中带有斜线的文件。我下载文件,如果文件名称中有斜线,它不想保存。例如歌曲的全名:“H/F ArtistName - Song name.mp3”。是否可以保存名称中带有斜线的文件?或者如何正确替换斜线?
【问题讨论】:
【参考方案1】:来自另一个帖子:
NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo
or just look here
【讨论】:
【参考方案2】:/ 通常用作操作系统中文件或文件夹之间的分隔符。因此文件名不能包含斜杠,因为这会混淆文件夹名称中的 H。
最好的办法是用空格替换它或简单地删除它以给出:“HF ArtistName - Songname.mp3”
【讨论】:
尝试在 MacOSX 上的文件名中输入斜杠。在文件组件被正确转义之前,使用什么作为分隔符并不重要。 各种 Mac/Apple 文件系统不使用斜杠 ("/") 作为分隔符,它们使用冒号 (":")。所以文件或目录可以包含斜杠但不能包含冒号。在各种接口(例如终端、shell)中,斜杠(POSIX 目录分隔符)被使用,但可以转义。【参考方案3】:解决方法:
Xcode 12.3、ios 14
fileName.replacingOccurrences(of: "/", with: ":") // ??? just have a try...
完整的演示代码:
public extension Data
func saveToTemporaryDirectory(fileName: String, completionHandler: @escaping (Result<URL, Error>) -> Void)
var localURL = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true)
localURL.appendPathComponent(fileName.replacingOccurrences(of: "/", with: ":"))
do
try self.write(to: localURL)
completionHandler(.success(localURL))
catch
completionHandler(.failure(error))
【讨论】:
以上是关于在文件名中保存带有斜线的文件-objective-c的主要内容,如果未能解决你的问题,请参考以下文章
关于Matlab小波工具箱打开.mat文件为一条递增斜线问题的解决办法
关于Matlab小波工具箱打开.mat文件为一条递增斜线问题的解决办法
关于Matlab小波工具箱打开.mat文件为一条递增斜线问题的解决办法
关于Matlab小波工具箱打开.mat文件为一条递增斜线问题的解决办法