当我使用文件名作为路径时无法访问该文件,尽管该文件位于同一目录中

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# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件

Android Studio:R.jar:该进程无法访问该文件,因为它正在被另一个进程使用

Windows无法访问指定设备,路径或文件怎么办