我已經做了一個小應用程序,在Win7-PC上運行。它所做的一切就是在凌晨1:00檢查網絡驅動器的內容(並將其與本地硬盤上的文件夾進行比較),如果有差異,請將差異複製到此文件夾。應用程序說網絡驅動器不存在,但發現使用OpenFileDialog
問題是,有時它找不到網絡驅動器。
當應用程序啓動時,使用啓動OpenFileDialog的應用程序上的按鈕找到網絡驅動器,並將生成的驅動器盤符放入按鈕旁邊的文本框中。從這一點來看,它應該只是自行運行。 PC從未關閉。
當它表示無法找到網絡驅動器時,我可以手動按下同一個應用程序上的按鈕,在OpenFileDialog中選擇驅動器(驅動器盤符永不更改),並且應用程序將在一對情侶中完美無缺地運行的日子。然後問題再次出現。
問題是:爲什麼可以通過我的應用程序中的OpenFileDialog訪問網絡驅動器,但我的應用程序不能?以確定驅動器是否存在或不存在:
我的應用程序使用此功能(稱爲用「\ Y」):開始複製過程
public bool fn_drive_exists(string par_string)
{
DirectoryInfo di_dir = new DirectoryInfo(par_string);
if (di_dir.Exists)
{
return true;
}
return false;
}
...有時就返回一個錯誤,直到我使用OpenFileDialog「喚醒它」。
OpenFileDialog做什麼,我的應用程序沒有?
你怎麼樣在'\\服務器\ sharedFolder'而不是映射的網絡驅動器'ÿ通:'?它有同樣的問題嗎? – 2012-07-06 04:56:56
另外,嘗試把周圍fn_drive_exists一些重試邏輯(也許循環5次,每環路6秒延遲)。 – 2012-07-06 04:59:11
聽起來像UNC路徑將工作你的情況。看到這個[SO後(http://stackoverflow.com/questions/133660/how-can-i-access-a-mapped-network-drive-with-system-io-directoryinfo) – 2012-07-06 05:07:43