เพิ่มไดเร็กทอรีที่มีอยู่แล้วลงในไดเร็กทอรีใน Solution Explorer


105

ฉันต้องการเพิ่มไดเร็กทอรีที่มีอยู่แล้วลงในไดเร็กทอรีใน Solution Explorer แต่เมื่อใดก็ตามที่ฉันคลิกขวาที่ไดเร็กทอรีและเลือกAdd => Existing Itemฉันสามารถเพิ่มไฟล์ได้ทีละไฟล์เท่านั้น แต่ไม่สามารถเพิ่มไดเร็กทอรีได้

ฉันจะเพิ่มไดเร็กทอรีที่มีอยู่แล้วไปยังไดเร็กทอรีภายใน Project ภายใน Solution Explorer ได้อย่างไร


คุณลองคลิกเพิ่มโฟลเดอร์และตั้งชื่อเป็นไดเรกทอรีของคุณบนดิสก์หรือไม่?
rene

9
พยายามลากและวางโฟลเดอร์จาก Windows Explorer ลงในหน้าต่างโซลูชัน Visual Studio ของคุณหรือไม่ ที่มา: stackoverflow.com/questions/392473/…
Chris

ฉันมีแล้ว! วิธีนี้ใช้ได้ผลดีขอบคุณ
JMK

@ คริสคุณควรจะโพสต์คำตอบนี้เพราะ.. เอ่อ ... มันฮาฮา
JMK

@Johnny_D คำตอบที่มีคะแนนโหวต 7 คะแนนมีประโยชน์มากกว่า
JMK

คำตอบ:


82

ลากและวางโฟลเดอร์จาก Windows Explorer ลงในหน้าต่างโซลูชัน Visual Studio ของคุณ :)

แหล่งที่มาที่นี่

หรือเพียงแค่คัดลอกและวางลงในเครื่องมือสำรวจโซลูชัน


การลากและวางจะสูญเสียโครงสร้างโฟลเดอร์ (VS12 Express)
Opsenas

1
@Chris: ไม่มีการลากและวางจาก explorer ไปยัง solution explorer คุณกำลังพูดถึงอะไร?
ajeh

@ajeh หากคุณเปิดหน้าต่าง explorer ข้างวิชวลสตูดิโอให้เลือกไฟล์จาก explorer จากนั้นลากและวางลงในหน้าต่าง Visual Studio Solution Explorer
คริส

177

คลิกปุ่ม 'แสดงไฟล์ทั้งหมด' ที่ด้านบนสุดของ Solution Explorer และคลิกขวาที่โฟลเดอร์ที่ต้องการแล้วเลือก 'รวมอยู่ในโปรเจ็กต์'

ปุ่มแสดงไฟล์ทั้งหมดใน VS2012 Solution Explorer


1
ฉันไม่พบปุ่มนี้ นี่เป็นเพราะฉันมีเฉพาะรุ่น Express หรือไม่?
Marcel

2
เท่าที่ฉันสามารถบอกได้ปุ่ม "แสดงไฟล์ทั้งหมด" ไม่มีอยู่ใน VS 2012 อีกต่อไปโปรดแก้ไขฉันหากฉันผิดพลาดเนื่องจากฉันพลาดฟังก์ชันนี้ แก้ไข: อย่างน้อยก็ไม่มีสำหรับโครงการเว็บไซต์
Klay

1
สวัสดี Klay จากที่ฉันเห็นปุ่ม "แสดงไฟล์ทั้งหมด" มีอยู่ใน VS2012 แต่ไม่มีอยู่ในโครงการเว็บไซต์ คำแนะนำของฉันสำหรับคุณคือ: พยายามอย่าใช้โครงการเว็บไซต์หากคุณต้องการฟังก์ชันนี้
Radenko Zec

2
ฉันรู้ว่ามันช้าไปหน่อย แต่ถ้าไดเรกทอรี (โฟลเดอร์) ของคุณอยู่ในระบบไฟล์แล้วและคุณต้องการเพิ่มลงในโครงการของคุณ (ตามที่ระบุไว้ในความคิดเห็นด้านบน) .. เพียงแค่เปิดไฟล์ explorer (เหมือนปกติ .. เปิดโฟลเดอร์ใน Windows) แล้วลากโฟลเดอร์และวางลงในโฟลเดอร์ที่ต้องการในบานหน้าต่าง explorer โซลูชันของคุณ .. งานเสร็จแล้ว! ฉันเพิ่งทำสิ่งนี้และใช้งานได้เนื่องจากฉันไม่มี 'แสดงไฟล์ทั้งหมด' และฉันยังต้องการใช้ 'โครงการเว็บไซต์' สำหรับโครงการของฉัน
rhaag71

16
สำหรับผู้ที่มีปัญหาในการค้นหาปุ่มโปรดทราบว่าปุ่มที่ด้านบนของ Solution Explorer จะเปลี่ยนไปตามสิ่งที่เลือก (ใน VS2012 เป็นอย่างน้อย) ตรวจสอบว่าคุณได้เลือกโครงการของคุณแล้ว
Jon-Eric

10

VS 2012 ดูเหมือนจะแยกความแตกต่างระหว่าง 'โฟลเดอร์โซลูชัน' ซึ่งเป็นเพียงโฟลเดอร์ที่มีโฟลเดอร์โซลูชันอื่นหรือมีโฟลเดอร์โครงการ การลากแล้วปล่อยใช้งานได้ (กับการตั้งค่าของฉัน) สำหรับโฟลเดอร์โครงการเท่านั้นและไม่ใช้สำหรับโฟลเดอร์โซลูชัน หากฉันเพิ่มโฟลเดอร์โซลูชันใหม่จะไม่มีอะไรเกิดขึ้นในเครื่อง หากฉันลากและวางโฟลเดอร์ในเครื่องไปยังโซลูชันหลักมันปฏิเสธที่จะยอมรับ หากฉันลากและวางโฟลเดอร์ไปยังโฟลเดอร์โซลูชันฉันได้รับข้อความแสดงข้อผิดพลาดแจ้งว่าไม่สามารถทำได้


4

คำตอบอื่น ๆ ไม่มีจุดสำคัญ: หากโฟลเดอร์ไม่ได้อยู่ในโปรเจ็กต์ในโซลูชันจะไม่สามารถเพิ่มโฟลเดอร์ได้

นี่คือวิธีแก้ปัญหา:

1) เพิ่มโฟลเดอร์ใหม่ใน sln - ไม่สนใจว่าโฟลเดอร์นั้นมีอยู่แล้วในดิสก์เพราะนี่คือโฟลเดอร์เสมือนใน sln

2) เพิ่มไฟล์ลงในโฟลเดอร์โดยใช้ "เพิ่มไฟล์ที่มีอยู่"


ฉันมีคำแนะนำสำหรับคุณ: หลีกเลี่ยงการทำให้คำตอบของคุณฟังดูเหมือนความคิดเห็น คำตอบเดิมของคุณมีข้อความว่า "ฉันต้องเพิ่มความคิดเห็น ... " ซึ่งสำหรับฉันแล้วแนะนำว่าควรเป็นความคิดเห็นแทนที่จะเป็นคำตอบ การเริ่มต้นคำตอบของคุณด้วยบรรทัดเช่นนี้อาจทำให้ถูกตั้งค่าสถานะว่า "ไม่ใช่คำตอบ" สำหรับฉันดูเหมือนว่าคำตอบของคุณกำลังพยายามตอบคำถามจริงๆดังนั้นฉันจึงแก้ไขเพื่อป้องกันแฟล็ก NAA
skrrgwasme

มันตอบคำถามได้ แต่ในขณะที่ฉันพัฒนามา 35 ปีภาษาอังกฤษของฉันก็ดูทื่อและตรงประเด็นนอกจากนี้รหัสไม่เคยได้รับความรู้สึกเจ็บปวดเมื่อไม่เข้าใจมันก็ใช้ไม่ได้
พลเรือเอก

2

เมื่อจัดการกับโฟลเดอร์ระดับโซลูชันที่ถูกลบออกด้วยเหตุผลบางประการและตอนนี้จำเป็นต้องเพิ่มกลับให้เปิดไฟล์. sln ในโปรแกรมแก้ไขข้อความเช่น notepad ++

ค้นหา "FolderName" ของคุณในส่วนที่มีลักษณะเช่นนี้ ...

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NewFolder1", "NewFolder1", "{73ED84FC-F250-4CCC-B267-34CEB67F2883}" EndProject

ลบจาก "Project" เป็น "EndProject" สำหรับ Project / Folder เฉพาะที่คุณกำลังมีปัญหา

คุณอาจได้รับข้อความใน VS2012 ที่แจ้งว่าโซลูชันของคุณได้รับการแก้ไขโดยแหล่งภายนอก เลือกตัวเลือกเพื่อ "ยกเลิก" การเปลี่ยนแปลงของคุณสำหรับการเปลี่ยนแปลงภายนอก สุดท้ายเพิ่มโฟลเดอร์ระดับโซลูชันของคุณและเพิ่มโครงการของคุณไปยังโฟลเดอร์นั้นเป็นรายการที่มีอยู่ลาก / วางหรือคัดลอกและวางตามความต้องการของคุณ


ฉันได้รับการโหวตลดลง แต่คำตอบก่อนหน้านี้ซึ่งบางส่วนมีการโหวตเพิ่มขึ้นอธิบายว่าวิธีแก้ปัญหาหลายอย่างโดยเฉพาะอย่างยิ่งวิธีที่มีเครื่องหมายถูกเป็นคำตอบจะไม่ช่วยให้ผู้ที่ได้รับข้อความ "มีโฟลเดอร์อยู่แล้ว" เมื่อพยายาม เพิ่มโฟลเดอร์โซลูชัน ฉันต้องหาวิธีแก้ปัญหานั้นด้วยตัวเองและฉันโพสต์ไว้ที่นี่เพื่อช่วยคนอื่น ...
Jabare Mitchell

1

ขยายรายการ "โครงการ" ในแถบเมนูและเลือก "แสดงไฟล์ทั้งหมด" จากนั้นค้นหาโฟลเดอร์ที่คุณต้องการเพิ่มใน Solution Explorer (โฟลเดอร์ที่ไม่ได้รวมอยู่ในขณะนี้จะเป็นสีเทาอ่อนพร้อมเส้นประแทนไอคอนทึบตามปกติ) คลิกขวาที่โฟลเดอร์ที่ต้องการแล้วเลือก "รวมในโครงการ"

เมื่อเสร็จแล้วให้เลือก "Show All Files" จากเมนู Project อีกครั้งเพื่อกลับไปที่มุมมองปกติ

(ซึ่งคล้ายกับคำตอบของ Radenko Zec มาก แต่ไม่จำเป็นต้องมีปุ่ม "แสดงไฟล์ทั้งหมด" ในแถบเครื่องมือฉันจะปล่อยให้สิ่งนี้เป็นคำตอบสำหรับคำตอบของเขา แต่ตอนนี้ฉันยังไม่มีชื่อเสียง เพื่อแสดงความคิดเห็น)


ฉันเชื่อว่าคุณอาจอ่านเพียงแค่โพสต์เดิมเพราะมันให้คำตอบ อย่างไรก็ตามฉันได้แก้ไขโพสต์เพื่อให้คำตอบนั้นชัดเจนยิ่งขึ้น ฉันไม่แน่ใจว่าเหตุใดคุณจึงแจ้งให้ฉันทราบถึงความจำเป็นที่จะต้องมีชื่อเสียงที่สูงขึ้นเพื่อแสดงความคิดเห็นในโพสต์เนื่องจากฉันได้ระบุไว้อย่างชัดเจนว่าในคำตอบซึ่งเป็นส่วนหนึ่งของความคิดเห็นที่อธิบายว่าฉันกำลังทิ้งคำตอบเพิ่มเติมไว้เป็นโพสต์ใหม่ แทนที่จะแสดงความคิดเห็นเนื่องจากการ จำกัด ชื่อเสียงนั้น แต่ขอขอบคุณสำหรับความคิดเห็นของคุณ!
Daetrin

ข้อความนั้นจะโพสต์โดยอัตโนมัติทุกครั้งที่คำตอบถูกตั้งค่าสถานะว่าไม่เป็นเช่นนั้น นอกเหนือจากนั้นการแก้ไขยังทำให้ชัดเจนยิ่งขึ้น
Davidmh

1

สำหรับผู้ที่มีลางสังหรณ์สามารถทำได้ แต่ไม่สามารถทำได้หมายเหตุ: ลากโฟลเดอร์หรือไฟล์ไปที่ชื่อของชื่อโครงการในโซลูชัน Explorerอย่างน้อยที่สุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.