web-dev-qa-db-ja.com

フォルダが存在しない場合は作成します。

私は自分のアプリケーションでFileUploaderコントロールを使用しています。指定したフォルダにファイルを保存したいこのフォルダが存在しない場合は、最初に作成してからファイルをこのフォルダに保存します。フォルダがすでに存在する場合は、その中にファイルを保存するだけです。

どうすればこれができますか?

602
Tavousi

他の人が言っているように、System.IO.Directory.CreateDirectoryを使いなさい

しかし、それが最初に存在するかどうかを確認する必要はありません。 docs から

Pathで指定されたディレクトリは、すでに存在している場合、またはpathの一部が無効である場合を除いて、作成されます。ディレクトリがすでに存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存のディレクトリのDirectoryInfoオブジェクトを返します。

1063
Mark Peters

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));
334
Ravia

この行を書くだけです:

System.IO.Directory.CreateDirectory("my folder");
  • フォルダが まだ存在していない の場合、 created になります。
  • フォルダ がすでに存在する場合 の場合、その行は 無視されます になります。

参照: MSDNのDirectory.CreateDirectoryに関する記事

もちろん、ソースファイルの先頭にusing System.IO;を書いて、フォルダを作成するたびにDirectory.CreateDirectory("my folder");を書くこともできます。

193
Nicolas Raoul

パスがまだ存在しない場合は、次のような方法でパスを作成できます。

using System.IO;

private void CreateIfMissing(string path)
{
  bool folderExists = Directory.Exists(Server.MapPath(path));
  if (!folderExists)
    Directory.CreateDirectory(Server.MapPath(path));
}
28
Dennis Traub

Directory.Exists これはFilePathが存在するかどうかをチェックする方法を説明します

Directory.CreateDirectory FilePathが存在しない場合の作成方法と作成方法を説明します。

27
jeroenh

Try/catch節を使用して、それが存在するかどうかを確認することができます。

  try
  {
    if (!Directory.Exists(path))
    {
       // Try to create the directory.
       DirectoryInfo di = Directory.CreateDirectory(path);
    }
  }
  catch (IOException ioex)
  {
     Console.WriteLine(ioex.Message);
  }
17
MethodMan
using System.IO

if (!Directory.Exists(yourDirectory))
    Directory.CreateDirectory(yourDirectory);
16
BlackBear

このメソッドは、存在しない場合はフォルダを作成し、存在する場合は何もしません。

Directory.CreateDirectory(path);
14
Thakur Rock
if (!Directory.Exists(Path.GetDirectoryName(fileName)))
{
    Directory.CreateDirectory(Path.GetDirectoryName(fileName));
}
12
KiranSolkar

以下のコードは、ディレクトリが存在しない場合にディレクトリを作成するために私が使用するコードの最良の行です。

System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/temp/"));

ディレクトリがすでに存在する場合、このメソッドは新しいディレクトリを作成しませんが、既存のディレクトリのDirectoryInfoオブジェクトを返します。 >

6
UJS

これが私が探していた答えでしたが、すぐには見つかりませんでした。

        string pathToNewFolder = System.IO.Path.Combine(parentFolderPath, "NewSubFolder");
        DirectoryInfo directory = Directory.CreateDirectory(pathToNewFolder); 
       // Will create if does not already exist (otherwise will ignore)
  • 与えられた新しいフォルダへのパス
  • ディレクトリ情報変数なので、好きなようにそれを操作し続けることができます。
2
BKSpurgeon

以下のコードを使用してください。このコードをファイルのコピーに使用し、新しいフォルダを作成しました。

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");

   }
}
1
Lemon Kazi

string createfolder = "E:/ tmp /" + uId;
System.IO.Directory.CreateDirectory(作成フォルダー);

0
amit