예제 #1
0
        /// <summary>
        /// "overwrite" is stronger than "append"
        /// </summary>
        /// <param name="path"></param>
        /// <param name="content"></param>
        /// <param name="overwrite"></param>
        /// <param name="append">used only if overwrite is set to false</param>
        /// <returns></returns>
        public static FileMessage TextFile(String path, String content, Boolean overwrite, Boolean append)
        {
            Impersonate oImpersonate    = new Impersonate();
            Boolean     wasImpersonated = Impersonate.isImpersonated();

            try
            {
                if (!wasImpersonated && oImpersonate.ImpersonateValidUser() == FileMessage.ImpersonationFailed)
                {
                    return(FileMessage.ImpersonationFailed);
                }
                else
                {
                    if (overwrite || !Exists.File(path))
                    {
                        try
                        {
                            System.IO.File.WriteAllText(path, content);
                            return(FileMessage.FileCreated);
                        }
                        catch
                        { return(FileMessage.Catch); }
                    }
                    else
                    if (append)
                    {
                        try
                        {
                            System.IO.File.AppendAllText(path, content);
                            return(FileMessage.FileCreated);
                        }
                        catch
                        { return(FileMessage.Catch); }
                    }
                    return(FileMessage.FileExist);
                }
            }
            catch
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
                return(FileMessage.Catch);
            }
            finally
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
            }
        }
예제 #2
0
        public static String TextFile(String filename)
        {
            Impersonate oImpersonate    = new Impersonate();
            Boolean     wasImpersonated = Impersonate.isImpersonated();

            try
            {
                if (!wasImpersonated)
                {
                    oImpersonate.ImpersonateValidUser();
                }
                if (Exists.File(filename))
                {
                    return(System.IO.File.ReadAllText(filename));
                }
                else
                {
                    return(String.Empty);
                }
            }
            catch
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
                return(String.Empty);
            }
            finally
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
            }
        }