我正在將文件從源文件夾移動到目標文件夾。在移動文件之前,我正在檢查該目錄是否存在,哪個工作正常。問題是我的第二次檢查,我想確保該文件夾在移動文件之前不是空的,但它沒有給我正確的結果。檢查文件夾中是否存在c#
public void MoveFilesFromTempToSourceTbl()
{
//Moving all files from temp folder to orig folder.
string sourceFolder = (twitterDO.Path + "\\" + msgDate.Year.ToString() + "\\" + msgDate.Month.ToString() + "\\" + msgDate.Day.ToString() + "_Temp").Replace("\\", @"\");
string destinationFolder = (twitterDO.Path + "\\" + msgDate.Year.ToString() + "\\" + msgDate.Month.ToString() + "\\" + msgDate.Day.ToString()).Replace("\\", @"\");
string pattern = "*.txt";
if (Directory.Exists(sourceFolder))
{
if (File.Exists(pattern))
{
foreach (var file in new DirectoryInfo(sourceFolder).GetFiles(pattern))
{
file.MoveTo(Path.Combine(destinationFolder, file.Name));
}
}
if (Directory.GetFiles(sourceFolder).Length == 0) //Before deleting make sure that Temp folder is empty.
Directory.Delete(sourceFolder, true); // Delete Temp folder after moving all the contents.
}
}
我知道我犯了一些小錯誤,但不知道它是什麼。以下是我立即獲得的結果屏幕截圖。
你需要'.Count',而不是'.Length'? – alykins 2014-10-08 15:39:34
我會跳過'File.Exists'檢查。在你的for循環中,如果沒有文件匹配模式,你將遍歷一個空集合(實際上什麼都不做)。另外,我會使用'Path.Combine'來定義你的'sourceFolder'和'destinationFolder'變量並避免奇怪的轉義。 – 2014-10-08 15:42:18
@Cory該文件夾中只有txt文件。我發現了一個場景,那裏沒有文件夾中的文件,所以我需要這個檢查。 – user3771772 2014-10-08 15:47:24