Cocoa 如何在Mac OS X中测试有效的文件名

Cocoa 如何在Mac OS X中测试有效的文件名,cocoa,macos,validation,file,Cocoa,Macos,Validation,File,除了尝试创建具有该名称的文件外,有人知道如何在Mac OS X中测试字符串是否是有效的文件名吗 我遇到的问题是,有时文件名可能太大。OSX对文件名有字节限制,对于unicode字符,您不能只检查字符串的长度,因为它们可以超过1个字节。我认为OSX上唯一的无效字符(控制字符除外)是冒号-因此您只需测试新文件名是否包含冒号。我认为唯一的无效字符是冒号OSX上的(控制字符除外)是冒号-因此您只需测试新文件名是否包含冒号。使用 --更新: 试试这个: if([testPath compare: [NSS

除了尝试创建具有该名称的文件外,有人知道如何在Mac OS X中测试字符串是否是有效的文件名吗


我遇到的问题是,有时文件名可能太大。OSX对文件名有字节限制,对于unicode字符,您不能只检查字符串的长度,因为它们可以超过1个字节。

我认为OSX上唯一的无效字符(控制字符除外)是冒号-因此您只需测试新文件名是否包含冒号。

我认为唯一的无效字符是冒号OSX上的(控制字符除外)是冒号-因此您只需测试新文件名是否包含冒号。

使用

--更新:

试试这个:

if([testPath compare: [NSString stringWithUTF8String:[testPath fileSystemRepresentation]]] == NSOrderedSame) {
    //testPath is a valid Path
}
但不保证它会做什么。

使用

--更新:

试试这个:

if([testPath compare: [NSString stringWithUTF8String:[testPath fileSystemRepresentation]]] == NSOrderedSame) {
    //testPath is a valid Path
}

不保证它会做什么。

在Mac OS X上,文件只不过是一个资源;路径/文件名就是位置。使用创建一个NSURL对象。如果文件名有效,该方法将只返回一个有效对象

摘自苹果文档:

  • NSURL对象可用于引用文件,并且是首选方法
  • NSURL类将无法创建新的NSURL对象,如果传递的路径格式不正确,则路径必须符合RFC 2396

在Mac OS X上,文件只不过是一种资源;路径/文件名就是位置。使用创建一个NSURL对象。如果文件名有效,该方法将仅返回一个有效对象

摘自苹果文档:

  • NSURL对象可用于引用文件,并且是首选方法
  • NSURL类将无法创建新的NSURL对象,如果传递的路径格式不正确,则路径必须符合RFC 2396

我需要知道文件名是否有效,而不是该文件是否已经存在。请尝试此
[NSString stringWithUTF8String:[myPath fileSystemRepresentation]];
我已尝试使用一本带有冒号的书中的任意语句执行此操作。但是,使用此方法,该书中的此字符串被识别为有效路径。。。(这显然是错误的)我需要知道文件名是否有效,而不是该文件是否已经存在。请尝试此
[NSString stringWithUTF8String:[myPath fileSystemRepresentation]];
我使用了一本带有冒号的书中的任意句子来尝试此操作。但是,使用此方法,该书中的此字符串被识别为有效路径。。。(这显然是错误的)此外,字符串可能具有无效的Unicode字符序列(例如,断开的代理项对)或者斜杠。这在很大程度上取决于您正在写入的文件系统。特别是,我认为许多网络文件系统在您实际尝试之前无法告诉您什么是有效的。此外,字符串可能具有无效的Unicode字符序列(例如,断开的代理项对)或者斜杠。很大程度上取决于您正在写入的文件系统。特别是,我认为许多网络文件系统在您实际尝试之前无法告诉您什么是有效的。错误的建议。例如,什么是“/”?错误的建议。例如,什么是“/”?