2009-06-30 30 views
0

"c:\ template_folder"というフォルダにテンプレートファイルがあります。Cを使用してファイルが存在しない場合にのみフォルダにファイルを追加する方法

実行時に、新しいフォルダ「c:\ new_folder」を作成し、そのファイルが存在しない場合にのみテンプレートファイルをnew_folderにコピーします。

説明:最初にテンプレートファイルをnew_folderにコピーして、usernameという名前に変更します。最初にループが終了した後、私はusernameという名前の8つのExcelファイルを作成します各ファイル。

2番目のループの場合、テンプレートファイルをnew_folderにコピーしてユーザー名に名前を変更する必要がある場合は、ユーザー名のファイルが既に存在する場合は、そのファイルをフォルダにコピーすべきではありません。

私は参考のためにコードのスニペットを追加しています。

foreach (FileInfo fi in templateFile) 
{ 
    string oldfilename = null; 
    string newfilename = null; 
    if (dir.Exists) 
    { 

      fi.CopyTo(Path.Combine(dir.ToString(), fi.Name)); 
      FileInfo fileName = new FileInfo(fi.Name); 
      oldfilename = Path.Combine(dir.ToString(), fileName.ToString()); 
      newfilename = Path.Combine(dir.ToString(), tempUserName + " " + "E" + tempUserID + " VIPv7.0.xls"); 


      //if(!dir.ToString().Contains(newfilename)) 
      foreach(FileInfo fileList in fileNames) 
      { 
      if (fileList.Exists == false) 
       File.Move(oldfilename, newfilename); 
      } 
    } 
} 

私はこれを手伝ってください。

おかげ RAMM

+0

ほんの少しの発言(申し訳ありませんが、質問に答えるために)書く:if(fileList.Exists == false)。 fileList.Existsはbooleanで、if文の結果もbooleanです。あなたは単にif(!fileList.Exists)を書くべきです。 – TimothyP

答えて

3

が存在するかどうかをチェックする代わりに、コメントアウト行のFile.Exists(パス)を使用したいです

if (!File.Exists(newfilename)) 
{ 
    File.Move(oldfilename, newfilename); 
} 

あなたのコードスニペットは私を混乱させるので、あなたの質問に正しく答えることを願っています。私が何かが欠けているなら、私に知らせてください。

0

あなたは、ファイルがすでに存在していない場合にのみ、条件付きでファイルを移動するには

3

ので、あなたのコードは(それがコンパイルされません)私には正しいようではありませんが、ファイルはFile.Exists(ファイル名)を呼び出すことによって、存在する場合は、チェックすることができます。

 foreach(FileInfo fileList in fileNames) 
     { 
     if (!File.Exists(newfilname)) 
      File.Move(oldfilename, newfilename); 
     } 
関連する問題