如何在 Objective C 中读取没有扩展名的文件
How to read a file without extension in Objective C
我的 iOS App Documents 目录中存储了一个文件。它是一个 plist 文件,但没有 .plist 文件扩展名。我想从代码中读取它的内容,但我无法打开没有扩展名的文件。有什么方法可以添加 plist 扩展名或将文件转换为 plist,或者有什么方法可以读取不带扩展名的文件内容。
这就是我的代码的样子
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"sample.bookmarks"];
filePath = [filePath stringByAppendingPathExtension:@"plist"];
NSDictionary *dict=[NSDictionary dictionaryWithContentsOfFile:filePath];
提前致谢
PS :如果我在 finder 中添加 .plist 扩展名(通过某种方法),我可以打开文件并查看内容。所以我确定它的类型。
试试这个。
pathToFile = [pathToFile stringByAppendingPathExtension:@"plist"];
应该可以加载 Plist 文件,无论它是否具有 .plist
扩展名。假设 Plist 文件名是 sample.bookmarks
那么下面应该加载 Plist。我假设 Plist 的根元素是一个字典,因为你声明如果 Plist 有 .plist
扩展名就可以打开。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"sample.bookmarks"];
NSDictionary *dict=[NSDictionary dictionaryWithContentsOfFile:filePath];
唯一的变化是我删除了向 filePath
.
添加 plist
扩展名的行
filePath = [filePath stringByAppendingPathExtension:@"plist"];
行会将 filePath
的文件名部分更改为 sample.bookmarks.plist
。如果您将扩展名更改为空字符串 (filePath = [filePath stringByAppendingPathExtension:@""];
),则文件名将更改为 sample.bookmarks.
,这与 sample.bookmarks
.
不同
我的 iOS App Documents 目录中存储了一个文件。它是一个 plist 文件,但没有 .plist 文件扩展名。我想从代码中读取它的内容,但我无法打开没有扩展名的文件。有什么方法可以添加 plist 扩展名或将文件转换为 plist,或者有什么方法可以读取不带扩展名的文件内容。
这就是我的代码的样子
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"sample.bookmarks"];
filePath = [filePath stringByAppendingPathExtension:@"plist"];
NSDictionary *dict=[NSDictionary dictionaryWithContentsOfFile:filePath];
提前致谢
PS :如果我在 finder 中添加 .plist 扩展名(通过某种方法),我可以打开文件并查看内容。所以我确定它的类型。
试试这个。
pathToFile = [pathToFile stringByAppendingPathExtension:@"plist"];
应该可以加载 Plist 文件,无论它是否具有 .plist
扩展名。假设 Plist 文件名是 sample.bookmarks
那么下面应该加载 Plist。我假设 Plist 的根元素是一个字典,因为你声明如果 Plist 有 .plist
扩展名就可以打开。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"sample.bookmarks"];
NSDictionary *dict=[NSDictionary dictionaryWithContentsOfFile:filePath];
唯一的变化是我删除了向 filePath
.
plist
扩展名的行
filePath = [filePath stringByAppendingPathExtension:@"plist"];
行会将 filePath
的文件名部分更改为 sample.bookmarks.plist
。如果您将扩展名更改为空字符串 (filePath = [filePath stringByAppendingPathExtension:@""];
),则文件名将更改为 sample.bookmarks.
,这与 sample.bookmarks
.