示例#1
0
        // 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)));
                }
            }
        }
示例#2
0
        // 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));
 }