当我使用文件名作为路径时无法访问该文件,尽管该文件位于同一目录中
Posted
技术标签:
【中文标题】当我使用文件名作为路径时无法访问该文件,尽管该文件位于同一目录中【英文标题】:Unable to access the file when I use its name as a path, although the file is in the same directory 【发布时间】:2018-01-24 13:56:49 【问题描述】:我有一个在源目录中定义的文件(testfile):
但是,当我尝试访问它时,消息“找不到文件!”出现在控制台上:
NSString *fNameTestfile = @"testfile";
if ([fm fileExistsAtPath:fNameTestfile] == NO)
NSLog(@"File doesn't exist!");
return 1;
所以,我必须使用长路径名来访问文件。
为什么会这样?
【问题讨论】:
NSString * fNameTestfile = [[NSBundle mainBundle] pathForResource:@"testfile" ofType:nil]
?
@Larme,它再次打印该消息
@Larme,你的代码返回 null
你的包里有testfile
吗?
@Larme,不,当我在 Xcode 中添加它时它不存在
【参考方案1】:
尝试以下操作 - 这应该验证您的文件是否存在。
还确保您已选择此文件以包含在适当的Target Membership
中。让这个未选择(不是正确的目标)总是会给你“文件不存在”。
如果你已经这样做了并且文件确实存在,下面将产生“Tadaaa”...
NSString *fNameTestFilePath = [[NSBundle mainBundle] pathForResource:@"testFile" ofType:nil];
if (![[NSFileManager defaultManager] fileExistsAtPath:fNameTestFilePath])
NSLog(@"File doesn't exist");
else NSLog(@"Tadaaa");
选择你需要添加新文件的位置(这里我选择我的主项目文件夹)
在您的情况下,创建一个新的Empty File
并将其命名为“testFile”
然后确保它的目标是正确的(就像你说的,它将被预选)。
然后应用我上面显示的代码(ff 它不起作用,您的 Xcode 应用程序或您的操作系统存在内部损坏)
【讨论】:
好吧,当我创建一个新文件(testfile)时,我无法选中该框。当我尝试检查目标时没有任何反应 我刚刚注意到,在尝试创建文件时,它的目标是预先选择的。但是在创建它之后,当我在文件检查器中点击文件时它不是。因此,我认为您的代码也不起作用(打印“文件不存在”)。 我已经在 5 分钟前测试过了,它按预期工作。您的目录以及如何添加/创建这些 testFiles 存在问题。 是的,我认为这不是一个普遍的问题。我像往常一样创建文件(cmd + N)然后添加它,所以我的项目导航器看起来像问题中的图像。我真的不知道我做错了什么。在Swift
一切正常
有很多事情可能会导致您的问题...确保文件的完整路径是正确的(您希望它在哪里......)并且它的位置是相对于您的项目(或组,但由于您的屏幕截图显示它不在组中..)以上是关于当我使用文件名作为路径时无法访问该文件,尽管该文件位于同一目录中的主要内容,如果未能解决你的问题,请参考以下文章
Flask“错误:提供的文件/路径似乎不存在”,尽管该文件确实存在
PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用
Android Studio运行报错:无法访问XXX......请删除该文件或确保该文件位于正确的类路径子目录中
c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件