Versão Swift 4.x
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
if let pathComponent = url.appendingPathComponent("nameOfFileHere") {
let filePath = pathComponent.path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
} else {
print("FILE PATH NOT AVAILABLE")
}
Versão Swift 3.x
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = URL(fileURLWithPath: path)
let filePath = url.appendingPathComponent("nameOfFileHere").path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
Na versão Swift 2.x , é necessário usar URLByAppendingPathComponent
let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
let filePath = url.URLByAppendingPathComponent("nameOfFileHere").path!
let fileManager = NSFileManager.defaultManager()
if fileManager.fileExistsAtPath(filePath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
Verifique o código abaixo:
Swift 1.2
Swift 2.0
fonte
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
absoluteString
para converterNSURL
para,path
mas seria melhor manter o caminho como uma string (NSString
) como no Swift 1.2.Hoje em dia (2016) Apple recomenda mais e mais para usar a API relacionada URL de
NSURL
,NSFileManager
etc.Para obter o diretório de documentos no iOS e no Swift 2, use
O
try!
é seguro neste caso, porque este diretório padrão é garantido que existe.Em seguida, acrescente o componente de caminho apropriado, por exemplo, um
sqlite
arquivoAgora verifique se o arquivo existe com
checkResourceIsReachableAndReturnError
ofNSURL
.Se você precisar do erro, passe o
NSError
ponteiro para o parâmetroSwift 3+:
checkResourceIsReachable
está marcado como pode jogarPara considerar apenas o valor de retorno booleano e ignorar o erro, use o operador nil-coalescing
fonte
checkResourceIsReachable()
e apenas retornaBool
para oURL
tipo.try - catch
padrão do @KendallHelmstetterGelner Swift não gera exceções. Não é comparável com exceções no Objective-C. É um sistema eficiente de tratamento de erros.É bastante fácil de usar. Apenas trabalhe com o singleton defaultManager do NSFileManager e use o
fileExistsAtPath()
método, que simplesmente pega uma string como argumento e retorna um Bool, permitindo que seja colocado diretamente na instrução if.Observe que o downcast para String não é necessário no Swift 2.
fonte
Um padrão de código alternativo / recomendado no Swift 3 seria:
Uso de tratamento de exceção
fonte
Swift 4.2
Usando: -
fonte
Para o benefício dos iniciantes do Swift 3 :
Aqui está um exemplo de código para verificar se existe um arquivo chamado "database.sqlite" no diretório de documentos do aplicativo:
fonte
Muito simples: se o seu caminho for uma instância de URL, converta em string pelo método 'path'.
fonte
Isso funciona bem para mim no swift4:
Você pode verificar com esta ligação:
Espero que seja útil para alguém. @; -]
fonte
Você deve adicionar uma barra "/" antes do nome do arquivo ou obter um caminho como "... / DocumentsFilename.jpg"
fonte
Exemplo do Swift 4 :
Coloquei a verificação na minha função loadData que chamei em viewDidLoad.
Então eu defini loadData abaixo.
fonte
trabalha na Swift 5
where
"userInfo"
- nome do arquivo e"sqlite3"
- extensão do arquivofonte