2016-05-10 12 views
-2

現在、添付ファイルのメールボックスを掃除し、見つかったメールがユーザーのディレクトリに置かれているプロジェクトで作業しています。私の問題は、ファイルがパスに存在するかどうかをチェックするときに、添付ファイルの名前を変更し、カウンタとタイムスタンプを追加することです。ただし、条件に入り、ファイル名が変更された場合、パス変数がクリーン名変数の正しい値を含むように更新されることはありません。変数の値が更新されていません

string timeProcessed = DateTime.Now.ToString(); 
byte[] bytefiles = attachment.ContentBytes; 
string cleanName = MakeCleanName(userEmail.Subject, attachment.Name);  
string path = employeeStarPath + "\\" + cleanName; 
// updated this in order to prevent images with the same name from overwritting eachother. 
if (File.Exists(path)) 
{         
    cleanName = Path.GetFileNameWithoutExtension(attachment.Name).ToString()+"(" + counter + ")" + "-(Recieved - " + timeProcessed.Replace(":",".").Replace("/",".") + ")"+ Path.GetExtension(attachment.Name); << this value is not updated in the path variable. 

} 

は今、私は再びpath = employeeStarPath + "\\" + cleanName;を呼び出すことにより、パスのVARを更新することができます承知していますが、私は、これは私のコードは少し混乱になると感じています。

+0

いやは、私の後で来るかもしれない他の人がMakeCleanName方法で何が起こるかの違いは何ですか – EasyE

+0

、私は念頭に置いて、私のコードビットを再構築しようと思って、モニターから離れて歩いていました'if(File.Exists(path)) 'ブロック内で何をやっているのですか?私は実際に何が起こっているかに応じて、あなたは本当にそれらのステートメントの一つをしたいと思うと思います。 – Zack

+0

確かに私が思っていたことですが、私は私のファイルチェックを私のMakecleanメソッドでやっています。 – EasyE

答えて

2

私はあなたの質問を理解できないかもしれませんが、単に "string path = employeeStarPath +" \ "+ cleanName;"という行を呼び出すことができます。最後にifの前に?

string timeProcessed = DateTime.Now.ToString(); 
byte[] bytefiles = attachment.ContentBytes; 
string cleanName = MakeCleanName(userEmail.Subject, attachment.Name);  

// updated this in order to prevent images with the same name from overwritting eachother. 
if (File.Exists(path)) 
{         
    cleanName = Path.GetFileNameWithoutExtension(attachment.Name).ToString()+"(" + counter + ")" + "-(Recieved - " + timeProcessed.Replace(":",".").Replace("/",".") + ")"+ Path.GetExtension(attachment.Name); << this value is not updated in the path variable. 

} 

string path = employeeStarPath + "\\" + cleanName; 
関連する問題