⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inboxwatcher.cs

📁 Easy to use SMS/MMS Messaging Gateway to develop Content Delivery Platforms by GSM Operators,Content
💻 CS
字号:
/*
 * Easy Messaging Gateway (SMS/MMS/Mail) - Easy to use SMS/MMS Messaging Gateway
 * to develop Content Delivery Platforms by GSM Operators,Content Providers
 * and even non-telecom guys. 
 * 
 * Uses file system for data flow. Protocol level is based on Easy SMPP and Easy MM7 projects.
 * 
 * Written for .NET 2.0 in C# 
 * Copyright (C) 2006 Balan Andrei, http://balan.name
 * 
 * Licensed under the terms of the GNU Lesser General Public License:
 * 		http://www.gnu.org/licenses/lgpl.html
 * 
 * For further information visit:
 * 		http://easymessaging.sf.net/
 * 
 * 
 * "Support Open Source software. What about a donation today?"
 *
 * 
 * File Name: InboxWatcher.cs
 * 
 * File Authors:
 *      Egoricev Serghei, egoricev@users.sourceforge.net
 * 		Balan Name, http://balan.name
 */

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace EasyMessaging.SmsGateway
{
    class InboxWatcher
    {
        private FileSystemWatcher fsWatcher;
        private SmsDispatcher smsDispatcher;

        public InboxWatcher(SmsDispatcher smsDispatcher)
        {
            this.smsDispatcher = smsDispatcher;
        }

        public void Start()
        {
            Console.WriteLine("Inbox monitor is starting...");
            try
            {
                createDirectoryStructure();
                string inboxPath = Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "inbox");
                fsWatcher = new FileSystemWatcher(inboxPath);
                fsWatcher.Changed += new FileSystemEventHandler(fsWatcher_Changed);
                fsWatcher.EnableRaisingEvents = true;
                Console.WriteLine("Will keep my eye on " + inboxPath);
            } // try
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            } // catch
            Console.WriteLine("Inbox monitor started.");
        }

        private void createDirectoryStructure()
        {
            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "inbox")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "inbox"));
            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "sent")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "sent"));
            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "bad")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.toSmsc), "bad"));

            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "inbox")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "inbox"));
            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "sent")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "sent"));
            if (!Directory.Exists(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "bad")))
                Directory.CreateDirectory(Path.Combine(Path.GetFullPath(Settings.Default.fromSmsc), "bad"));
        }
        void fsWatcher_Changed(object sender, FileSystemEventArgs e)
        {
            smsDispatcher.Wake();
        }

        public void Stop()
        {
            fsWatcher.EnableRaisingEvents = false;
        }

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -