วิธีดำเนินการ I/O ของแฟ้มพื้นฐาน ใน Visual C++ หรือ ใน.NET Visual C++

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 307398 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับการ Microsoft Visual C++ .NET 2005/2008 ECMA C+ + /mts รุ่นบทความนี้ ไม่เห็น 950617.
สำหรับ Microsoft Visual C# .NET รุ่นนี้ บทความ ดู 304430.
สำหรับภาพ Microsoft ดูเวอร์ชัน.NET พื้นฐานของบทความนี้ 304427.
บทความนี้อ้างอิงถึง namespaces Microsoft .NET Framework ไลบรารีคลาสต่อไปนี้:
  • System::ComponentModel
  • System::Windows::Forms
  • System::Drawing
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายถึงวิธี basic 6 แฟ้มอินพุต/เอาต์พุต (I/O) ดำเนิน ใน Microsoft Visual C++ 2005 หรือ Microsoft Visual C++ .NET ถ้าคุณยังใหม่กับ.NET Framework คุณจะพบว่า รูปแบบวัตถุสำหรับการดำเนินการแฟ้มใน.NET Framework จะคล้ายคลึงกับ การFileSystemObject (FSO) ที่ได้รับความนิยมกับนักพัฒนา Microsoft Visual Studio 6.0 มาก ขึ้น เมื่อต้องการ ทำให้ช่วงการเปลี่ยนภาพได้ง่ายขึ้น การทำงานที่จะแสดงให้เห็นว่าในเรื่องนี้ บทความเป็นไปตามบทความฐานความรู้ของ Microsoft ต่อไปนี้:
186118 วิธีการใช้ FileSystemObject ด้วย Visual Basic
คุณยังสามารถใช้FileSystemObjectใน.NET Framework เนื่องจากFileSystemObjectเป็นคอมโพเนนต์ของคอมโพเนนต์วัตถุแบบจำลอง (COM) .NET Framework ต้องที่ การเข้าถึงวัตถุที่สามารถผ่านชั้นที่มี .NET Framework เป็นแรปเปอร์สำหรับสำหรับที่สร้าง คอมโพเนนต์สำหรับคุณถ้าคุณต้องการใช้งาน อย่างไรก็ตามแฟ้มคลาส คลาFileInfo ,ไดเรกทอรีคลาDirectoryInfoและประเภทอื่น ๆ ที่เกี่ยวข้องใน.NET Framework ให้ ฟังก์ชันการทำงานที่ไม่พร้อมใช้งานกับ FSO โดยไม่มีค่าโสหุ้ยของ การ ชั้นที่มีอยู่

ความต้องการ

ฮาร์ดแวร์แนะนำ ซอฟต์แวร์ การจัดเค้าร่างข้อมูลต่อไปนี้ โครงสร้างพื้นฐานของเครือข่าย และเซอร์วิสแพ็คที่จำเป็น:
  • 2005 Visual C++ หรือ.NET Visual C++

การดำเนินการแฟ้ม demonstrated I/O

ตัวอย่างในบทความนี้อธิบายการดำเนินการ I/O ของแฟ้มพื้นฐาน ส่วน "ตัวอย่าง Step-by-Step" อธิบายวิธีการสร้างโปรแกรมตัวอย่าง ที่แสดงการดำเนินงาน 6 แฟ้ม I/O ดังต่อไปนี้:
  • อ่านแฟ้มข้อความ
  • เขียนแฟ้มข้อความ
  • การดูแฟ้มข้อมูล
  • รายการดิสก์ไดรฟ์
  • CSAutomateExcel
  • แสดงรายการแฟ้ม

อ่านแฟ้มข้อความ

ตัวอย่างรหัสต่อไปนี้ใช้คลาStreamReaderการอ่านแฟ้มข้อความ เนื้อหาของแฟ้มมี เพิ่มตัวควบคุมกล่องรายการ ช่วงลอง... catchจะใช้กับโปรแกรมการแจ้งเตือนถ้าแฟ้มว่างเปล่า มี มีหลายวิธีด้วยกันเพื่อตรวจสอบเมื่อถึงจุดสิ้นสุดของแฟ้ม ตัวอย่างนี้ ใช้วิธีการมองตรวจสอบบรรทัดถัดไปก่อนที่จะอ่านได้
  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 (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 once


namespace 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: สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างแบบฟอร์ม Windows ใน Managed ส่วนขยายสำหรับ c ++, ดูตัวอย่าง "ManagedCWinFormWiz" ใน Visual Studio .NET วิธีใช้

คุณสมบัติ

หมายเลขบทความ (Article ID): 307398 - รีวิวครั้งสุดท้าย: 28 มิถุนายน 2556 - Revision: 5.0
ใช้กับ
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
Keywords: 
kbwindowsforms kbforms kbio kbfileio kbhowtomaster kbnewsgrouplink kbmt KB307398 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:307398

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com