ฉันจะตรวจสอบได้อย่างไรว่าไดเร็กทอรีC:/
มีชื่อโฟลเดอร์MP_Upload
และหากไม่มีอยู่ให้สร้างโฟลเดอร์โดยอัตโนมัติ
ฉันใช้ Visual Studio 2005 C #
ฉันจะตรวจสอบได้อย่างไรว่าไดเร็กทอรีC:/
มีชื่อโฟลเดอร์MP_Upload
และหากไม่มีอยู่ให้สร้างโฟลเดอร์โดยอัตโนมัติ
ฉันใช้ Visual Studio 2005 C #
คำตอบ:
สิ่งนี้จะช่วยได้:
using System.IO;
...
string path = @"C:\MP_Upload";
if(!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
using System.IO;
...
Directory.CreateDirectory(@"C:\MP_Upload");
Directory.CreateDirectoryทำสิ่งที่คุณต้องการ: สร้างไดเร็กทอรีหากยังไม่มี ไม่จำเป็นต้องทำการตรวจสอบอย่างชัดเจนก่อน
ไดเร็กทอรีใด ๆ และทั้งหมดที่ระบุในพา ธ จะถูกสร้างขึ้นเว้นแต่ว่ามีอยู่แล้วหรือบางส่วนของพา ธ ไม่ถูกต้อง พารามิเตอร์พา ธ ระบุพา ธ ไดเร็กทอรีไม่ใช่พา ธ ไฟล์ หากมีไดเร็กทอรีอยู่แล้ววิธีนี้จะไม่ทำอะไรเลย
(ซึ่งหมายความว่าไดเรกทอรีทั้งหมดตามเส้นทางจะถูกสร้างขึ้นหากจำเป็น: CreateDirectory(@"C:\a\b\c\d")
พอเพียงแม้ว่าC:\a
จะยังไม่มีอยู่ก็ตาม)
ให้ฉันเพิ่มคำเตือนเกี่ยวกับไดเร็กทอรีที่คุณเลือก: การสร้างโฟลเดอร์โดยตรงด้านล่างรูทพาร์ติชันระบบC:\
นั้นขมวดคิ้ว พิจารณาให้ผู้ใช้เลือกโฟลเดอร์หรือสร้างโฟลเดอร์ใน%APPDATA%
หรือ%LOCALAPPDATA%
แทน (ใช้Environment.GetFolderPathสำหรับสิ่งนั้น) หน้า MSDN ของการแจงนับEnvironment.SpecialFolderประกอบด้วยรายการของโฟลเดอร์ระบบปฏิบัติการพิเศษและวัตถุประสงค์
EnsureDirectoryExists
จะทำให้วิธีนี้หายากขึ้น
Directory.CreateDirectory
บางประการ: จะปรากฏขึ้นหากชื่อโฟลเดอร์ตรงกับชื่อไฟล์ที่มีอยู่
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Create
เป็นCreateDirectory
:)
สิ่งนี้ควรใช้งานได้
if(!Directory.Exists(@"C:\MP_Upload")) {
Directory.CreateDirectory(@"C:\MP_Upload");
}
using System;
using System.IO;
using System.Windows.Forms;
namespace DirCombination
{
public partial class DirCombination : Form
{
private const string _Path = @"D:/folder1/foler2/folfer3/folder4/file.txt";
private string _finalPath = null;
private string _error = null;
public DirCombination()
{
InitializeComponent();
if (!FSParse(_Path))
Console.WriteLine(_error);
else
Console.WriteLine(_finalPath);
}
private bool FSParse(string path)
{
try
{
string[] Splited = path.Replace(@"//", @"/").Replace(@"\\", @"/").Replace(@"\", "/").Split(':');
string NewPath = Splited[0] + ":";
if (Directory.Exists(NewPath))
{
string[] Paths = Splited[1].Substring(1).Split('/');
for (int i = 0; i < Paths.Length - 1; i++)
{
NewPath += "/";
if (!string.IsNullOrEmpty(Paths[i]))
{
NewPath += Paths[i];
if (!Directory.Exists(NewPath))
Directory.CreateDirectory(NewPath);
}
}
if (!string.IsNullOrEmpty(Paths[Paths.Length - 1]))
{
NewPath += "/" + Paths[Paths.Length - 1];
if (!File.Exists(NewPath))
File.Create(NewPath);
}
_finalPath = NewPath;
return true;
}
else
{
_error = "Drive is not exists!";
return false;
}
}
catch (Exception ex)
{
_error = ex.Message;
return false;
}
}
}
}
String path = Server.MapPath("~/MP_Upload/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
ลองดูได้เลย ..
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}