// Overridden from IFolder public IFile GetFile(string name, EFileAccessResponse accessReponse = EFileAccessResponse.FailIfMissing) { var file = System.IO.Path.Combine(nativeFolder.FullName, name); if (File.Exists(file)) { if (EFileAccessResponse.FailIfExists == accessReponse) { throw new IOException("Cannot get File " + file + ": file already exists."); } else { if (EFileAccessResponse.ReplaceIfExists == accessReponse) { File.Create(file).Close(); } return((IFile) new IONFile(new FileInfo(file))); } } else { if (EFileAccessResponse.FailIfMissing == accessReponse) { throw new FileNotFoundException("Cannot get file " + file + ": doesn't exist."); } else { if (EFileAccessResponse.CreateIfMissing == accessReponse) { File.Create(file).Close(); } return((IFile) new IONFile(new FileInfo(file))); } } }
// Overridden from IFolder public IFolder GetFolder(string name, EFileAccessResponse accessResponse = EFileAccessResponse.FailIfMissing) { var dir = System.IO.Path.Combine(nativeFolder.FullName, name); if (Directory.Exists(dir)) { if (EFileAccessResponse.FailIfExists == accessResponse) { throw new IOException("Cannot get folder " + dir + ": folder already exists."); } else { return((IFolder) new IONFolder(new DirectoryInfo(dir))); } } else { if (EFileAccessResponse.FailIfMissing == accessResponse) { throw new FileNotFoundException("Cannot get folder " + dir + ": doesn't exist."); } else { return((IFolder) new IONFolder(Directory.CreateDirectory(dir))); } } }
// Overridden from IFileManager public IFile CreateTemporaryFile(string name, EFileAccessResponse accessResponse = EFileAccessResponse.ReplaceIfExists) { var jf = Java.IO.File.CreateTempFile(name, "", new Java.IO.File(GetApplicationExternalDirectory().fullPath)); return(new IONFile(new FileInfo(jf.AbsolutePath))); /* * var tempFileName = System.IO.Path.GetTempPath() + name; * return new IONFile(new FileInfo(tempFileName)); */ }
/// <summary> /// Gets the file with the given name. If the file doesn't exists, we will throw an exception. /// </summary> /// <param name="name"></param> /// <param name="collisionResponse"></param> /// <returns></returns> /// <param name="accessResponse">Access response.</param> // Overridden from IFolder public IFile GetFile(string name, EFileAccessResponse accessResponse = EFileAccessResponse.FailIfMissing) { if (name.Equals(lastSearchedFile?.name)) { return(lastSearchedFile); } foreach (var file in GetFileList()) { if (file.name.Equals(name)) { lastSearchedFile = file as AndroidAssetFile; return(file); } } throw new IOException("Cannot find file " + fullPath + "/" + name); }
// Overridden from IFileManager public IFile CreateTemporaryFile(string name, EFileAccessResponse accessResponse = EFileAccessResponse.ReplaceIfExists) { var tempFileName = System.IO.Path.GetTempPath() + name; return(new IONFile(new FileInfo(tempFileName))); }
/// <summary> /// Gets the folder with the given name. If the folder doesn't exist, we will throw an exception. /// </summary> /// <param name="name">Name.</param> /// <param name="accessResponse"></param> /// <returns>The folder.</returns> /// <param name="accessReponse">Access reponse.</param> // Overridden from IFolder public IFolder GetFolder(string name, EFileAccessResponse accessReponse = EFileAccessResponse.FailIfMissing) { return(new AndroidAssetFolder(context, this, name)); }