CSKernelFile.cFile.open C# (CSharp) Method

open() public method

public open ( string fullFileName, eFileMode mode, bool createFile, bool silens, eFileAccess access, bool withDialog, bool canOpenOther ) : bool
fullFileName string
mode eFileMode
createFile bool
silens bool
access eFileAccess
withDialog bool
canOpenOther bool
return bool
        public bool open(string fullFileName, eFileMode mode,
                         bool createFile, bool silens, eFileAccess access,
                         bool withDialog, bool canOpenOther)
        {
            bool exists = false;
            close();

            if (fullFileName.Length > 0)
            {
                FileInfo fi = new FileInfo(fullFileName);
                exists = (fi.Exists);
            }
            else
            {
                fullFileName = " ";
                exists = false;
            }
            if ((!exists && !createFile) || withDialog)
            {
                exists = fileExists(m_curPath + Path.DirectorySeparatorChar + getFileName(fullFileName));

                if (exists && !withDialog)
                {
                    fullFileName = m_curPath + Path.DirectorySeparatorChar + getFileName(fullFileName);
                }
                else if (silens)
                {
                    return false;
                }
                else if (!userSearchFile(ref fullFileName, false, "Open file", false, canOpenOther))
                {
                    return false;
                }
            }

            if (createFile)
            {
                FileInfo fi = new FileInfo(fullFileName);
                if (fi.Exists)
                {
                    try
                    {
                        fi.Delete();
                    }
                    catch (Exception ex)
                    {
                        cError.mngError(ex, "open", c_module, "");
                        return false;
                    }
                }
            }
            try
            {
                switch (mode)
                {
                    case eFileMode.eAppend:
                        switch (access)
                        {
                            case eFileAccess.eShared:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.Append,
                                                        FileAccess.Write,
                                                        FileShare.ReadWrite);
                                break;
                            case eFileAccess.eLockWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.Append,
                                                        FileAccess.Write,
                                                        FileShare.Read);
                                break;
                            case eFileAccess.eLockReadWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.Append,
                                                        FileAccess.Write,
                                                        FileShare.None);
                                break;
                            default:
                                return false;
                        }
                        break;
                    // text mode
                    case eFileMode.eWrite:
                        switch (access)
                        {
                            case eFileAccess.eShared:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.ReadWrite);
                                break;
                            case eFileAccess.eLockWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.Read);
                                break;
                            case eFileAccess.eLockReadWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.None);
                                break;
                            default:
                                return false;
                        }
                        break;
                    case eFileMode.eRead:
                        switch (access)
                        {
                            case eFileAccess.eShared:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.ReadWrite);
                                break;
                            case eFileAccess.eLockWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.Read);
                                break;
                            case eFileAccess.eLockReadWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.None);
                                break;
                            default:
                                return false;
                        }
                        break;
                    // binary mode
                    case eFileMode.eBinaryWrite:
                        switch (access)
                        {
                            case eFileAccess.eShared:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.ReadWrite);
                                m_bw = new BinaryWriter(m_file);
                                break;
                            case eFileAccess.eLockWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.Read);
                                m_bw = new BinaryWriter(m_file);
                                break;
                            case eFileAccess.eLockReadWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Write,
                                                        FileShare.None);
                                m_bw = new BinaryWriter(m_file);
                                break;
                            default:
                                return false;
                        }
                        break;
                    case eFileMode.eBinaryRead:
                        switch (access)
                        {
                            case eFileAccess.eShared:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.ReadWrite);
                                m_br = new BinaryReader(m_file);
                                break;
                            case eFileAccess.eLockWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.Read);
                                m_br = new BinaryReader(m_file);
                                break;
                            case eFileAccess.eLockReadWrite:
                                m_file = new FileStream(fullFileName,
                                                        FileMode.OpenOrCreate,
                                                        FileAccess.Read,
                                                        FileShare.None);
                                m_br = new BinaryReader(m_file);
                                break;
                            default:
                                return false;
                        }
                        break;
                    default:
                        return false;
                }
                m_open = true;
                return true;
            }
            catch (Exception ex)
            {
                cError.mngError(ex, "open", c_module, "");
                return false;
            }
        }

Same methods

cFile::open ( string fullFileName, eFileMode mode ) : bool
cFile::open ( string fullFileName, eFileMode mode, bool createFile ) : bool

Usage Example

Example #1
0
        private bool resumeDBAccessMissing(String connectString, bool saveInReport, CSDataBase.cDataBase cn)
        { // TODO: Use of ByRef founded Private Function ResumeDBAccessMissing(ByVal StrConnect As String, ByVal SaveInReport As Boolean, ByRef cn As cDataBase) As Boolean
            try
            {
                // if the database is not access we do nothing
                //
                if (connectString.ToLower().IndexOf("PROVIDER=Microsoft.Jet.OLEDB.4.0;".ToLower()) == 0)
                {
                    return false;
                }

                // get the datasource's name
                //
                String fileName = "";
                fileName = cUtil.getToken(connectString, "Data Source");

                // ask to the user if he wan to search for the database file
                //
                CommonDialog commDialog = null;
                if (FindAccessFile != null)
                {
                    FindAccessFileEventArgs e = new FindAccessFileEventArgs(fileName);
                    FindAccessFile(this, e);
                    if (e.cancel)
                    {
                        return false;
                    }
                    commDialog = e.commonDialog;
                }

                CSKernelFile.cFile file = new CSKernelFile.cFile();

                file.filter = "Access files|*.mdb";
                file.init("ResumeDBAccessMissing", C_MODULE, commDialog);

                if (!file.open(m_pathDefault + Path.DirectorySeparatorChar + file,
                                CSKernelClient.eFileMode.eRead,
                                false,
                                false,
                                eFileAccess.eShared,
                                true,
                                true))
                {
                    return false;
                }

                fileName = file.fullName;

                file.close();

                connectString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName;

                if (!cn.initDb(connectString))
                {
                    return false;
                }

                // save the new location 
                //
                if (saveInReport)
                {
                    m_connect.setStrConnect(connectString);
                }
                return true;

            }
            catch (Exception ex)
            {
                cError.mngError(ex, "ResumeDBAccessMissing", C_MODULE, "");
                return false;
            }
        }
All Usage Examples Of CSKernelFile.cFile::open