コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public static extern int mq_open([In, MarshalAs(UnmanagedType.LPUTF8Str)] string name, eFileFlags flags, eFileAccess access, [In] ref MessageQueueAttributes attributes);
コード例 #3
0
 internal static extern IntPtr CreateFile([In] String fileName, [In] eFileAccess fileAccess, [In] EFileShare fileShare, [In, Optional] IntPtr fileSecurity, [In] eCreationDisposition creationDisposition, [In] UInt32 flags, [In, Optional] IntPtr handleTemplateFile);
コード例 #4
0
ファイル: cFile.cs プロジェクト: javiercrowsoft/CSReports.net
        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;
            }
        }