如果文件夹不存在,请创build它
我在我的应用程序中使用FileUploader控件。 我想将文件保存在指定的文件夹中。 现在我想,如果这个文件夹不存在,首先创build它,然后将我的文件保存到这个文件夹。 如果该文件夹已经存在,那么就把文件保存在里面。
我怎么能做到这一点?
正如其他人所说,使用System.IO.Directory.CreateDirectory
但是,你不需要检查它是否存在。 从文档
path中指定的任何和所有目录都将被创build,除非它们已经存在,或者path的某些部分无效。 path参数指定目录path,而不是文件path。 如果目录已经存在,这个方法什么都不做。
按照http://forums.asp.net/p/1226236/2209871.aspx使用下面的代码:;
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));
只要写下这一行:
System.IO.Directory.CreateDirectory(myDir);
- 如果文件夹不存在 ,它将被创build 。
- 如果该文件夹已经存在 ,该行将被忽略 。
参考: 有关MSDN上的Directory.CreateDirectory的文章
如果path不存在,可以使用如下方法创buildpath:
using System.IO; private void CreateIfMissing(string path) { bool folderExists = Directory.Exists(Server.MapPath(path)); if (!folderExists) Directory.CreateDirectory(Server.MapPath(path)); }
Directory.Exists
这将解释如何检查一个FilePath存在
Directory.CreateDirectory
这将解释如何尝试和创buildFilePath,如果它不存在
using System.IO if (!Directory.Exists(yourDirectory)) Directory.CreateDirectory(yourDirectory);
您可以使用try / catch子句并检查它是否存在:
try { if (!Directory.Exists(path)) { // Try to create the directory. DirectoryInfo di = Directory.CreateDirectory(path); } } catch (IOException ioex) { Console.WriteLine(ioex.Message); }
如果不存在,此方法将创build文件夹,如果存在则不做任何事情
Directory.CreateDirectory(path);
if (!Directory.Exists(Path.GetDirectoryName(fileName))) { Directory.CreateDirectory(Path.GetDirectoryName(fileName)); }
使用下面的代码。 我用这个代码进行文件复制并创build新的文件夹。
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"); } }
下面的代码是我使用的代码的最好的行,如果不存在,将创build目录。
System.IO.Directory.CreateDirectory(Server.MapPath("~/temp/"));
如果该目录已存在,则此方法不会创build新的目录,但会为现有目录返回一个DirectoryInfo对象。 >
您可以使用Directory.Exist来检查目录是否存在。
string root = @"C:\Temp"; string subdir = @"C:\Temp\Mahesh"; // If directory does not exist, create it. if (!Directory.Exists(root)) { Directory.CreateDirectory(root); }
CreateDirectory也用于创build一个子目录。 您所要做的就是指定将在其中创build此子目录的目录的path。以下代码片段在C:\Temp directory
创build一个Mahesh子目录。
// Create sub directory if (!Directory.Exists(subdir)) { Directory.CreateDirectory(subdir); }
从多个答案派生/组合,为我实现这一点非常简单:
public void Init() { String platypusDir = @"C:\platypus"; CreateDirectoryIfDoesNotExist(platypusDir); } private void CreateDirectoryIfDoesNotExist(string dirName) { System.IO.Directory.CreateDirectory(dirName); }
stringcreatefolder =“E:/ tmp /”+ uId;
System.IO.Directory.CreateDirectory(createfolder);
- ASP.Netvalidation摘要导致页面跳转到顶部
- url内的双转义序列:请求过滤模块configuration为拒绝包含双转义序列的请求
- 没有ASP.NET页面的ResolveUrl
- 使用Visual Studio的web.config转换进行debugging
- System.Runtime.Serialization.Json命名空间在哪里?
- 请求的页面无法访问,因为页面的相关configuration数据是无效错误
- 中继器,ListView,DataList,DataGrid,GridView …哪个可以select?
- 目录上的“401未经授权”
- ServiceStack示例应该按什么顺序进行维护?