หากคุณมีเส้นทางแบบเต็มเช่น: "C:\dir0\dir1\dir2\dir3\dir4\"
คุณจะนำมันไปใช้อย่างไรให้ไดเรกทอรีทั้งหมดปรากฏอยู่ได้อย่างไร?
มีวิธีการนี้ใน BCL หรือไม่? ถ้าไม่เป็นวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
หากคุณมีเส้นทางแบบเต็มเช่น: "C:\dir0\dir1\dir2\dir3\dir4\"
คุณจะนำมันไปใช้อย่างไรให้ไดเรกทอรีทั้งหมดปรากฏอยู่ได้อย่างไร?
มีวิธีการนี้ใน BCL หรือไม่? ถ้าไม่เป็นวิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
คำตอบ:
Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
ฉันจะเรียก
ตรงกันข้ามกับความเชื่อที่นิยมDirectory.CreateDirectory
จะสร้างไดเรกทอรีหลักใดที่ไม่มีอยู่โดยอัตโนมัติ
ในคำพูดของ MSDNCreates all directories and subdirectories as specified by path.
หากเส้นทางทั้งหมดมีอยู่แล้วมันจะไม่ทำอะไรเลย (มันจะไม่เกิดข้อยกเว้น)
Path.GetDirectoryName
เพื่อรับมัน
สร้างไดเรกทอรีจากเส้นทางไฟล์ที่สมบูรณ์
private String EvaluatePath(String path){
try
{
String folder = Path.GetDirectoryName(path);
if (!Directory.Exists(folder))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(folder);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
return "";
}
return path;
}