«October 2008»
1234
567891011
12131415161718
19202122232425
262728293031
 导 航
首页(14)
ARM(7)
LINUX(11)
vc++(0)
dotnet(0)
论坛新帖

 公 告
暂无公告...

 日 志
·Linux应用程序开发续(转)
·Linux应用程序开发(转)
·sortlinklist
·linklist
·vector sort
·VC++ file 操作
·fileSystemWatcher
·ARM基础知识二
·ARM基础知识一
·ARM入门

 评 论
·在输入Auto-refresh命令后,...
·good!
·WO  DING &nb...
·"本书"??所讨论的S...

 链 接

http://blog.chinaunix.ne

http://www.ringkee.com/


 统 计
博客名称:NOTE
日志总数:14
评论数量:12
访问次数:14762
建立时间:2007年3月14日
 [vc++]fileSystemWatcher
 毅 发表于 2007-10-28 23:19:00

using namespace System::IO;
using namespace System::Threading;
namespace FileMonitor {

 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;

 /// <summary>
 /// Form1 摘要
 ///
 /// 警告: 如果更改此类的名称,则需要更改
 ///          与此类所依赖的所有 .resx 文件关联的托管资源编译器工具的
 ///          “资源文件名”属性。否则,
 ///          设计器将不能与此窗体的关联
 ///          本地化资源正确交互。
 /// </summary>
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
  Form1(void)
  {
   InitializeComponent();
   //
   //TODO: 在此处添加构造函数代码
   //
  }

 protected:
  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  ~Form1()
  {
   if (components)
   {
    delete components;
   }
  }
 private: System::Windows::Forms::Button^  button1;
 protected:
 private: System::Windows::Forms::TextBox^  textBox1;
 private: System::IO::FileSystemWatcher^  fileSystemWatcher1;
 private: System::Windows::Forms::Label^  label1;

 private:
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
  /// <summary>
  /// 设计器支持所需的方法 - 不要
  /// 使用代码编辑器修改此方法的内容。
  /// </summary>
  void InitializeComponent(void)
  {
   this->button1 = (gcnew System::Windows::Forms::Button());
   this->textBox1 = (gcnew System::Windows::Forms::TextBox());
   this->fileSystemWatcher1 = (gcnew System::IO::FileSystemWatcher());
   this->label1 = (gcnew System::Windows::Forms::Label());
   (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->fileSystemWatcher1))->BeginInit();
   this->SuspendLayout();
   //
   // button1
   //
   this->button1->Location = System::Drawing::Point(98, 178);
   this->button1->Name = L"button1";
   this->button1->Size = System::Drawing::Size(75, 23);
   this->button1->TabIndex = 0;
   this->button1->Text = L"Monitor";
   this->button1->UseVisualStyleBackColor = true;
   this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
   //
   // textBox1
   //
   this->textBox1->Location = System::Drawing::Point(67, 105);
   this->textBox1->Name = L"textBox1";
   this->textBox1->Size = System::Drawing::Size(155, 21);
   this->textBox1->TabIndex = 1;
   this->textBox1->Text = L"d:\\temp";
   //
   // fileSystemWatcher1
   //
   this->fileSystemWatcher1->EnableRaisingEvents = true;
   this->fileSystemWatcher1->SynchronizingObject = this;
   this->fileSystemWatcher1->Created += gcnew System::IO::FileSystemEventHandler(this, &Form1::fileSystemWatcher1_Created);
   this->fileSystemWatcher1->Deleted += gcnew System::IO::FileSystemEventHandler(this, &Form1::fileSystemWatcher1_Deleted);
   this->fileSystemWatcher1->Changed += gcnew System::IO::FileSystemEventHandler(this, &Form1::fileSystemWatcher1_Changed);
   //
   // label1
   //
   this->label1->AutoSize = true;
   this->label1->Location = System::Drawing::Point(65, 69);
   this->label1->Name = L"label1";
   this->label1->Size = System::Drawing::Size(41, 12);
   this->label1->TabIndex = 2;
   this->label1->Text = L"label1";
   //
   // Form1
   //
   this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
   this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
   this->ClientSize = System::Drawing::Size(292, 266);
   this->Controls->Add(this->label1);
   this->Controls->Add(this->textBox1);
   this->Controls->Add(this->button1);
   this->Name = L"Form1";
   this->Text = L"Form1";
   (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->fileSystemWatcher1))->EndInit();
   this->ResumeLayout(false);
   this->PerformLayout();

  }
#pragma endregion
 private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
     String^ path=textBox1->Text;
    fileSystemWatcher1->Path=path;
    fileSystemWatcher1->EnableRaisingEvents=true;
    String^ path1 = "d:\\temp\\log.txt";
    FileInfo^ fi1 = gcnew FileInfo( path );
     // if (  !fi1->Exists )
     // {
     // //Create a file to write to.
     //StreamWriter^ sw = fi1->CreateText();
     //try
     //{
     //
     //  sw->WriteLine( "start:" );
     //}
     //finally
     //{
     //if ( sw )
     //delete (IDisposable^)sw;
     //}

    
      //}

 

 

 

    }
 


 private: System::Void fileSystemWatcher1_Created(System::Object^  sender, System::IO::FileSystemEventArgs^  e) {
     ///////////////////
     label1->Text =String::Concat("File: " ,  e->FullPath , " " , e->ChangeType);
     String^ content = String::Concat("File: " ,  e->FullPath , " " , e->ChangeType);
     // Open an existing file, or create a new one.
      FileInfo^ fi = gcnew FileInfo( "temp.txt" );
     
      // Create a writer, ready to add entries to the file.
      StreamWriter^ sw = fi->AppendText();
      sw->WriteLine( content );     
      sw->Flush();
      sw->Close();

     //Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);


    }
 private: System::Void fileSystemWatcher1_Deleted(System::Object^  sender, System::IO::FileSystemEventArgs^  e) {
     ///////////////////
      label1->Text =String::Concat("File: " ,  e->FullPath , " " ,e->ChangeType);  
       String^ content = String::Concat("File: " ,  e->FullPath , " " , e->ChangeType);
     // Open an existing file, or create a new one.
      FileInfo^ fi = gcnew FileInfo( "temp.txt" );
     
      // Create a writer, ready to add entries to the file.
      StreamWriter^ sw = fi->AppendText();
      sw->WriteLine( content );     
      sw->Flush();
      sw->Close();
    
    }
 private: System::Void fileSystemWatcher1_Changed(System::Object^  sender, System::IO::FileSystemEventArgs^  e) {
     //////////
     label1->Text =String::Concat("File: " ,  e->FullPath , " " ,e->ChangeType);
     String^ content = e->FullPath; //mypath + "\\" + cr.Name;
    FileInfo^ fi = gcnew FileInfo(content);

    if (!fi->Exists)
    {

     //Console.WriteLine("file not exits!!");
    }
HELLO:           try
    {

     fi->OpenRead();
    }
    catch (IOException^  ex)
    {

     //Console.WriteLine(ex.Message);                
     Thread::Sleep(3000);
     goto HELLO;
                    
            
    }
     label1->Text ="ok";
    String^ path1 = "d:\\temp\\cp";
    int a=content->LastIndexOf("\\");    
    path1=path1+content->Substring(a);
    //FileInfo^ fi2 = gcnew FileInfo( path1 );
    fi->CopyTo( path1 );

 


    }
};

 阅读全文(350) | 回复(0)

0
顶一下

 评 论

发表点评:
昵 称: 匿名
验证码: 6228

日志搜索: