ขณะนี้คุณออฟไลน์อยู่ กำลังรออินเทอร์เน็ตเพื่อเชื่อมต่ออีกครั้ง

= String::Concat(windir, (S"\\mytest.txt")); StreamReader *reader=new StreamReader(textFile); do { listBox1->Items->Add(reader->ReadLine()); } while(reader->Peek() != -1); } catch (System::Exception *e) { listBox1->Items->Add(e); }} หมายเหตุ ใน 2005 Visual C++ คุณต้องเพิ่มทั่วไปภาษารันไทม์สนับสนุนคอมไพเลอร์ตัว (/clr:oldSyntax) เพื่อการคอมไพล์เสร็จเรียบร้อยแล้วตัวอย่างรหัสก่อนหน้านี้เป็นจัดการ c ++เมื่อต้องการเพิ่มทั่วไปภาษารันไทม์สนับสนุนคอมไพเลอร์ตัว ให้ทำตามขั้นตอนเหล่านี้:
  1. คลิก โครงการแล้ว คลิกProjectName คุณสมบัติ.

    หมายเหตุProjectName คือตัวยึดสำหรับชื่อของโครงการ
  2. ขยาย คุณสมบัติการตั้งค่าคอนฟิกแล้ว คลิกทั่วไป.
  3. ในบานหน้าต่างด้านขวา คลิกเพื่อเลือก สนับสนุนการใช้งานจริงภาษาทั่วไป ไวยากรณ์เก่า (/ clr:oldSyntax) ในการสนับสนุนการรันไทม์ภาษาทั่วไป การตั้งค่าโครงการ
  4. คลิกนำไปใช้แล้ว คลิก ตกลง.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับทั่วไปภาษารันไทม์สนับสนุนคอมไพเลอร์ตัว แวะไปที่เว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx

เขียนแฟ้มข้อความ

โค้ดตัวอย่างนี้ใช้StreamWriterคลาเพื่อสร้าง และเขียนไปยังแฟ้ม ถ้าคุณมีที่มีอยู่แล้ว แฟ้ม คุณสามารถเปิดได้ในลักษณะเดียวกัน
StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");pwriter->WriteLine(S"File created using StreamWriter class.");pwriter->Close();listBox1->Items->Clear();String *filew = new String(S"File Written to C:\\KBTest.txt");listBox1->Items->Add(filew);				

การดูแฟ้มข้อมูล

โค้ดตัวอย่างนี้ใช้คลาสFileInfoเพื่อเข้าถึงคุณสมบัติของแฟ้ม ใช้ Notepad.exe ในเรื่องนี้ ตัวอย่าง คุณสมบัติปรากฏในตัวควบคุมกล่องรายการ
 listBox1->Items->Clear(); String* testfile = String::Concat(windir, (S"\\notepad.exe"));  FileInfo *pFileProps  =new FileInfo(testfile); listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) ); listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) ); listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) ); listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) ); listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );				

รายการดิสก์ไดรฟ์

โค้ดตัวอย่างนี้ใช้คลาสที่ไดเรกทอรีและไดรฟ์เพื่อแสดงรายการไดรฟ์แบบลอจิคัลบนระบบนี้ สำหรับตัวอย่างนี้ ผลลัพธ์ปรากฏในตัวควบคุมกล่องรายการ
  listBox1->Items->Clear();  String* drives[] = Directory::GetLogicalDrives();  int numDrives = drives->get_Length();  for (int i=0; i<numDrives; i++)  {	listBox1->Items->Add(drives[i]);  } 				

โฟลเดอร์ย่อยในรายการ

โค้ดตัวอย่างนี้ใช้วิธีการGetDirectoriesของไดเรกทอรีระดับชั้นเมื่อต้องการดูรายชื่อของโฟลเดอร์
listBox1->Items->Clear();String* dirs[] = Directory::GetDirectories(windir);int numDirs = dirs->get_Length();for (int i=0; i<numDirs; i++){listBox1->Items->Add(dirs[i]);}				

แสดงรายการแฟ้ม

โค้ดตัวอย่างนี้ใช้วิธีการGetFilesของไดเรกทอรีระดับชั้นเมื่อต้องการขอรับรายการของแฟ้ม
listBox1->Items->Clear();String* files[]= Directory::GetFiles(this->windir);int numFiles = files->get_Length();for (int i=0; i<numFiles; i++){  listBox1->Items->Add(files[i]);}				
หลายอย่างไปไม่ถูกต้องเมื่อผู้ใช้สามารถเข้าถึงแฟ้ม แฟ้ม อาจไม่มีอยู่ แฟ้มอาจถูกใช้งาน หรือผู้ใช้อาจไม่มีสิทธิ์ในการ แฟ้มของโฟลเดอร์ที่จะพยายามจะเข้าถึง พิจารณา ซึ่งอาจเป็นไปได้เหล่านี้เมื่อคุณเขียนรหัสการจัดการข้อยกเว้น สามารถสร้าง

ตัวอย่างทีละขั้นตอน

  1. Start Microsoft Visual Studio .NET, Microsoft Visual Studio 2005 หรือ Microsoft Visual C++ 2005 Edition Express
  2. ในการ แฟ้ม เมนู ชี้ไปที่ใหม่แล้ว คลิก โครงการ.
  3. ภายใต้ ชนิดของโครงการคลิกโครงการ Visual C++. ภายใต้ แม่แบบ ส่วน คลิกแอพลิเคชันของแบบฟอร์ม Windows (.NET).

    หมายเหตุ ใน Visual Studio 2005 คลิกVisual C++ ภายใต้ ชนิดของโครงการ. ภายใต้ แม่แบบคลิกแอพลิเคชันฟอร์ม Windows.
  4. ชนิด KB307398 ในการชื่อ กล่อง ชนิด C:\ ในการตำแหน่งที่ตั้ง กล่อง และคลิกตกลง.
  5. เปิดแบบฟอร์ม Form1 ในการออกแบบ ดู และจากนั้น กด F4 เพื่อเปิดตัว หน้าต่าง Propertries
  6. ในหน้าต่างคุณสมบัติ ขยายตัว ขนาดโฟลเดอร์ ในการ ความกว้าง กล่อง ชนิด 700. ในการ ความสูง กล่อง ชนิด320.
  7. เพิ่มหนึ่ง กล่องรายการ ควบคุมและหกปุ่ม ตัวควบคุมไปที่ Form1

    หมายเหตุ เมื่อต้องการดูกล่องเครื่องมือ กล่องเครื่องมือ ในการ มุมมอง เมนู
  8. ในหน้าต่างคุณสมบัติ เปลี่ยนแปลงตำแหน่งที่ตั้งการ ชื่อการ ขนาดการTabIndexและ ข้อความ คุณสมบัติเหล่านี้ ควบคุมเป็นดังนี้:
    ID การควบคุมตำแหน่งที่ตั้งชื่อขนาดTabIndexข้อความ
    button1500, 32button1112 231แฟ้มข้อความที่อ่าน
    button2500, 64button2112 232เขียนแฟ้มข้อความ
    button3500, 96button3112 233การดูแฟ้มข้อมูล
    button4500, 128button4112 234ไดรฟ์รายการ
    button5500, 160button5112 235โฟลเดอร์ย่อยในรายการ
    button6500, 192button6112 236แสดงรายการแฟ้ม
    listBox124, 24listBox1450 2000listBox1
  9. เปิดแฟ้ม Form1.h ในการประกาศคลาสForm1 ประกาศตัวหนึ่งส่วนตัวแปรสายอักขระกับรหัสต่อไปนี้:
    private:		String *windir;
  10. ในตัวสร้างคลาสForm1เพิ่มรหัสต่อไปนี้:
    windir = System::Environment::GetEnvironmentVariable("windir");
  11. เมื่อต้องการทำการดำเนินการผลผลิตป้อนข้อมูลแฟ้ม เพิ่มSystem::IO namespace
  12. กด SHIFT + F7 เพื่อเปิด Form1 ใน มุมมองออกแบบ คลิกสองครั้งแฟ้มข้อความอ่านปุ่ม และวางรหัสต่อไปนี้:

    หมายเหตุ ใน 2005 Visual C++ คลิก ตัวออกแบบ ในการ มุมมอง เมนู
    // How to read a text file:// Use try...catch to deal with a 0 byte file or a non-existant file.listBox1->Items->Clear();try   {    	String* textFile = String::Concat(windir, (S"\\mytest.txt")); 	StreamReader *reader=new  StreamReader(textFile);	do	{	listBox1->Items->Add(reader->ReadLine());	}   	while(reader->Peek() != -1);}    catch(FileNotFoundException *ex){	listBox1->Items->Add(ex);}          catch (System::Exception *e){ 	listBox1->Items->Add(e);}
  13. ในมุมมองออกแบบของ Form1 คลิกสองครั้งแฟ้มข้อความที่เขียนปุ่ม และวางรหัสต่อไปนี้:
    // This demonstrates how to create and to write to a text file.StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");pwriter->WriteLine(S"The file was created by using the StreamWriter class.");pwriter->Close();listBox1->Items->Clear();String *filew = new String(S"File written to C:\\KBTest.txt");listBox1->Items->Add(filew);
  14. ในมุมมองออกแบบของ Form1 คลิกสองครั้งปุ่มมุมมองแฟ้มข้อมูลและวางรหัสต่อไปนี้ในวิธีการ:
    // This code retrieves file properties. The example uses Notepad.exe.listBox1->Items->Clear();String* testfile = String::Concat(windir, (S"\\notepad.exe")); FileInfo *pFileProps  =new FileInfo(testfile);listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) );listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );
  15. ในมุมมองออกแบบของ Form1 คลิกสองครั้งปุ่มรายการไดรฟ์และวางรหัสต่อไปนี้:
    // This demonstrates how to obtain a list of disk drives.listBox1->Items->Clear();String* drives[] = Directory::GetLogicalDrives();int numDrives = drives->get_Length();for (int i=0; i<numDrives; i++){	listBox1->Items->Add(drives[i]);}
  16. ในมุมมองออกแบบของ Form1 คลิกสองครั้งโฟลเดอร์ย่อยในรายการปุ่ม และวางรหัสต่อไปนี้:
    // This code obtains a list of folders. This example uses the Windows folder.listBox1->Items->Clear();String* dirs[] = Directory::GetDirectories(windir);int numDirs = dirs->get_Length();for (int i=0; i<numDirs; i++){	listBox1->Items->Add(dirs[i]);                                                    }
  17. ในมุมมองออกแบบของ Form1 คลิกสองครั้งแฟ้มรายการปุ่ม และวางรหัสต่อไปนี้:
    // This code obtains a list of files. This example uses the Windows folder.listBox1->Items->Clear();String* files[]= Directory::GetFiles(this->windir);int numFiles = files->get_Length();for (int i=0; i<numFiles; i++){	listBox1->Items->Add(files[i]);}
  18. เมื่อต้องการสร้าง และจากนั้น เรียกใช้โปรแกรม กด CTRL + F5

ตัวอย่างรหัสเสร็จสมบูรณ์

หมายเหตุ คุณต้องเปลี่ยนรหัสต่อไปนี้เมื่อทำงานใน 2005 Visual C++
//Form1.h#pragma oncenamespace KB307398{	using namespace System;	using namespace System::IO;	using namespace System::ComponentModel;	using namespace System::Collections;	using namespace System::Windows::Forms;	using namespace System::Data;	using namespace System::Drawing;	/// <summary> 	/// Summary for Form1	///	/// WARNING: If you change the name of this class, you will need to change the 	///          'Resource File Name' property for the managed resource compiler tool 	///          associated with all .resx files this class depends on.  Otherwise,	///          the designers will not be able to interact properly with localized	///          resources associated with this form.	/// </summary>	public __gc class Form1 : public System::Windows::Forms::Form	{	private:		String *windir;	public:		Form1(void)		{			windir = System::Environment::GetEnvironmentVariable("windir");			InitializeComponent();		}  	protected:		void Dispose(Boolean disposing)		{			if (disposing && components)			{				components->Dispose();			}			__super::Dispose(disposing);		}	private: System::Windows::Forms::Button *  button1;	private: System::Windows::Forms::Button *  button2;	private: System::Windows::Forms::Button *  button3;	private: System::Windows::Forms::Button *  button4;	private: System::Windows::Forms::Button *  button5;	private: System::Windows::Forms::Button *  button6;	private: System::Windows::Forms::ListBox *  listBox1;	private:		/// <summary>		/// Required designer variable.		/// </summary>		System::ComponentModel::Container * components;		/// <summary>		/// Required method for Designer support - do not modify		/// the contents of this method with the code editor.		/// </summary>		void InitializeComponent(void)		{			this->button1 = new System::Windows::Forms::Button();			this->button2 = new System::Windows::Forms::Button();			this->button3 = new System::Windows::Forms::Button();			this->button4 = new System::Windows::Forms::Button();			this->button5 = new System::Windows::Forms::Button();			this->button6 = new System::Windows::Forms::Button();			this->listBox1 = new System::Windows::Forms::ListBox();			this->SuspendLayout();			// 			// button1			// 			this->button1->Location = System::Drawing::Point(500, 32);			this->button1->Name = S"button1";			this->button1->Size = System::Drawing::Size(112, 23);			this->button1->TabIndex = 1;			this->button1->Text = S"Read Text File";			this->button1->Click += new System::EventHandler(this, button1_Click);			// 			// button2			// 			this->button2->Location = System::Drawing::Point(500, 64);			this->button2->Name = S"button2";			this->button2->Size = System::Drawing::Size(112, 23);			this->button2->TabIndex = 2;			this->button2->Text = S"Write Text File";			this->button2->Click += new System::EventHandler(this, button2_Click);			// 			// button3			// 			this->button3->Location = System::Drawing::Point(500, 96);			this->button3->Name = S"button3";			this->button3->Size = System::Drawing::Size(112, 23);			this->button3->TabIndex = 3;			this->button3->Text = S"View File Information";			this->button3->Click += new System::EventHandler(this, button3_Click);			// 			// button4			// 			this->button4->Location = System::Drawing::Point(500, 128);			this->button4->Name = S"button4";			this->button4->Size = System::Drawing::Size(112, 23);			this->button4->TabIndex = 4;			this->button4->Text = S"List Drives";			this->button4->Click += new System::EventHandler(this, button4_Click);			// 			// button5			// 			this->button5->Location = System::Drawing::Point(500, 160);			this->button5->Name = S"button5";			this->button5->Size = System::Drawing::Size(112, 23);			this->button5->TabIndex = 5;			this->button5->Text = S"List Subfolders";			this->button5->Click += new System::EventHandler(this, button5_Click);			// 			// button6			// 			this->button6->Location = System::Drawing::Point(500, 188);			this->button6->Name = S"button6";			this->button6->Size = System::Drawing::Size(112, 23);			this->button6->TabIndex = 6;			this->button6->Text = S"List Files";			this->button6->Click += new System::EventHandler(this, button6_Click);			// 			// listBox1			// 			this->listBox1->Location = System::Drawing::Point(24, 24);			this->listBox1->Name = S"listBox1";			this->listBox1->Size = System::Drawing::Size(450, 199);			this->listBox1->TabIndex = 0;			// 			// Form1			// 			this->AutoScaleBaseSize = System::Drawing::Size(5, 13);			this->ClientSize = System::Drawing::Size(692, 293);			this->Controls->Add(this->listBox1);			this->Controls->Add(this->button6);			this->Controls->Add(this->button5);			this->Controls->Add(this->button4);			this->Controls->Add(this->button3);			this->Controls->Add(this->button2);			this->Controls->Add(this->button1);			this->Name = S"Form1";			this->Text = S"Form1";			this->ResumeLayout(false);		}		private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)			 {// This code shows how to read a text file.// The try...catch code is to deal with a 0 byte file or a non-existant file.listBox1->Items->Clear();				try   				{    					String* textFile = String::Concat(windir, (S"\\mytest.txt")); 					StreamReader *reader=new  StreamReader(textFile);					do					{					listBox1->Items->Add(reader->ReadLine());					}   					while(reader->Peek() != -1);				} 				catch(FileNotFoundException *ex)				{					listBox1->Items->Add(ex);				}	     				        				catch (System::Exception *e)				{ 					listBox1->Items->Add(e);				}			 }private: System::Void button2_Click(System::Object *  sender, System::EventArgs *  e)		 {// This code demonstrates how to create and to write to a text file.StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");pwriter->WriteLine(S"The file was created by using the StreamWriter class.");pwriter->Close();listBox1->Items->Clear();String *filew = new String(S"The file was written to C:\\KBTest.txt");listBox1->Items->Add(filew);		 }private: System::Void button3_Click(System::Object *  sender, System::EventArgs *  e)		 {// This code retrieves file properties. This example uses Notepad.exe.listBox1->Items->Clear();String* testfile = String::Concat(windir, (S"\\notepad.exe")); FileInfo *pFileProps  =new FileInfo(testfile);listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) );listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) );listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );		 }private: System::Void button4_Click(System::Object *  sender, System::EventArgs *  e)		 {// The code demonstrates how to obtain a list of disk drives.listBox1->Items->Clear();String* drives[] = Directory::GetLogicalDrives();int numDrives = drives->get_Length();for (int i=0; i<numDrives; i++){	listBox1->Items->Add(drives[i]);}		 }private: System::Void button5_Click(System::Object *  sender, System::EventArgs *  e)		 {// This code obtains a list of folders. This example uses the Windows folder.listBox1->Items->Clear();String* dirs[] = Directory::GetDirectories(windir);int numDirs = dirs->get_Length();for (int i=0; i<numDirs; i++){	listBox1->Items->Add(dirs[i]);                                                    }		 }private: System::Void button6_Click(System::Object *  sender, System::EventArgs *  e)		 {// This code obtains a list of files. This example uses the Windows folder.listBox1->Items->Clear();String* files[]= Directory::GetFiles(this->windir);int numFiles = files->get_Length();for (int i=0; i<numFiles; i++){	listBox1->Items->Add(files[i]);}		 }};}//Form1.cpp#include "stdafx.h"#include "Form1.h"#include <windows.h>using namespace KB307398;int APIENTRY _tWinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPTSTR    lpCmdLine,                     int       nCmdShow){	System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;	Application::Run(new Form1());	return 0;}
ข้อมูลอ้างอิง
สำหรับข้อมูลเพิ่มเติม โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:
http://support.microsoft.com/default.aspx?xmlid=fhสหรัฐอเมริกาสั้น vcnet
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างแบบฟอร์ม Windows ใน Managed ส่วนขยายสำหรับ c ++, ดูตัวอย่าง "ManagedCWinFormWiz" ใน Visual Studio .NET วิธีใช้

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 307398 - การตรวจสอบครั้งสุดท้าย: 06/28/2013 10:02:00 - ฉบับแก้ไข: 5.0

  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • kbwindowsforms kbforms kbio kbfileio kbhowtomaster kbnewsgrouplink kbmt KB307398 KbMtth
คำติชม