提问人:Tavousi 提问时间:1/30/2012 最后编辑:Bob KaufmanTavousi 更新时间:9/6/2023 访问量:1134364
如果文件夹不存在,请创建它
If a folder does not exist, create it
问:
我在应用程序中使用控件。我想将文件保存到指定的文件夹。如果此文件夹不存在,我想先创建它,然后将我的文件保存到此文件夹。如果该文件夹已存在,则只需将文件保存在其中即可。FileUploader
我该怎么做?
答:
按照如何使用文件上传服务器控件动态创建文件夹使用以下代码使用:
string subPath ="ImagesPath"; // Your code goes here
bool exists = System.IO.Directory.Exists(Server.MapPath(subPath));
if(!exists)
System.IO.Directory.CreateDirectory(Server.MapPath(subPath));
评论
FileExists
Exists
System.IO.Directory.CreateDirectory
Directory.CreateDirectory
解释了如何尝试创建 FilePath(如果 FilePath 不存在)。
Directory.Exists
说明如何检查 FilePath 是否存在。但是,您不需要它,因为 CreateDirectory 会为您检查它。
评论
您可以使用 try/catch 子句并检查它是否存在:
try
{
if (!Directory.Exists(path))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(path);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
评论
如果路径尚不存在,可以使用如下方法创建路径:
using System.IO;
private void CreateIfMissing(string path)
{
bool folderExists = Directory.Exists(Server.MapPath(path));
if (!folderExists)
Directory.CreateDirectory(Server.MapPath(path));
}
评论
if (!folderExists)
FileExists
using System.IO
if (!Directory.Exists(yourDirectory))
Directory.CreateDirectory(yourDirectory);
使用 System.IO.Directory.CreateDirectory
。
根据官方的“.NET”文档,你不需要先检查它是否存在。
System.io > Directory > Directory.CreateDirectory
将创建 中指定的任何和所有目录,除非它们已存在或某些部分无效。如果该目录已存在,则此方法不会创建新目录,但会返回现有目录的对象。
path
path
DirectoryInfo
— learn.microsoft.com/dotnet/api/
评论
只需写下这一行:
System.IO.Directory.CreateDirectory("my folder");
- 如果该文件夹尚不存在,则将创建该文件夹。
- 如果该文件夹已存在,则将忽略该行。
参考:MSDN 上有关 Directory.CreateDirectory 的文章
当然,您也可以在源文件顶部使用 System.IO;
写入,然后每次要创建文件夹时都写入 Directory.CreateDirectory(“my folder”)。
string root = @"C:\Temp";
string subdir = @"C:\Temp\Mahesh";
// If directory does not exist, create it.
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
CreateDirectory 还用于创建子目录。您所要做的就是指定将在其中创建此子目录的目录的路径。以下代码片段在 中创建 Mahesh 子目录。C:\Temp directory
// Create sub directory
if (!Directory.Exists(subdir))
{
Directory.CreateDirectory(subdir);
}
如果文件夹不存在,此方法将创建该文件夹,如果该文件夹存在,则不执行任何操作:
Directory.CreateDirectory(path);
评论
使用以下代码。我使用此代码进行文件复制和创建新文件夹。
string fileToCopy = "filelocation\\file_name.txt";
String server = Environment.UserName;
string newLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\file_name.txt";
string folderLocation = "C:\\Users\\" + server + "\\Pictures\\Tenders\\";
bool exists = System.IO.Directory.Exists(folderLocation);
if (!exists)
{
System.IO.Directory.CreateDirectory(folderLocation);
if (System.IO.File.Exists(fileToCopy))
{
MessageBox.Show("file copied");
System.IO.File.Copy(fileToCopy, newLocation, true);
}
else
{
MessageBox.Show("no such files");
}
}
评论
从多个答案中推导出/组合,对我来说实现它就这么简单:
public void Init()
{
String platypusDir = @"C:\platypus";
CreateDirectoryIfDoesNotExist(platypusDir);
}
private void CreateDirectoryIfDoesNotExist(string dirName)
{
System.IO.Directory.CreateDirectory(dirName);
}
评论
CreateDirectory
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
评论
以下代码是我使用的最佳代码行,如果不存在,它将创建目录。
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));
如果目录已存在,则此方法不会创建新目录,但会返回现有目录的 DirectoryInfo 对象。>
评论
创建一个新文件夹,给定父文件夹的路径:
string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder);
// Will create if does not already exist (otherwise will ignore)
- 给定新文件夹的路径
- 目录信息变量,以便您可以继续随心所欲地操作它。
如果文件夹未显示在图像文件夹或其他文件夹下,请使用此代码
string subPath = HttpContext.Current.Server.MapPath(@"~/Images/RequisitionBarCode/");
bool exists = System.IO.Directory.Exists(subPath);
if(!exists)
System.IO.Directory.CreateDirectory(subPath);
string path = HttpContext.Current.Server.MapPath(@"~/Images/RequisitionBarCode/" + OrderId + ".png");
一种奇特的方法是使用您想要的方法扩展。FileUpload
添加以下内容:
public static class FileUploadExtension
{
public static void SaveAs(this FileUpload, string destination, bool autoCreateDirectory) {
if (autoCreateDirectory)
{
var destinationDirectory = new DirectoryInfo(Path.GetDirectoryName(destination));
if (!destinationDirectory.Exists)
destinationDirectory.Create();
}
file.SaveAs(destination);
}
}
然后使用它:
FileUpload file;
...
file.SaveAs(path,true);
评论
FileUploadExtension
通过查看上面的答案,显然很多人仍然不知道“Directory.CreateDirectory”,或者他们没有仔细阅读官方文档。
评论