[英]How to check if I can create a file in a specific folder
我需要知道我是否可以在特定文件夾中創建文件,但有太多東西要檢查,如權限,重復文件等。我正在尋找類似File.CanCreate(@"C:\\myfolder\\myfile.aaa"
),但還沒有找到這樣的方法。 我唯一想到的是嘗試創建一個虛擬文件並檢查異常,但這是一個影響性能的無法解決方案。 你知道更好的解決方案嗎?
實際上,創建虛擬文件不會對大多數應用程序產生巨大的性能影響。 當然,如果你有創建但不破壞的高級權限,它可能會有點毛茸茸......
Guids對於隨機名稱總是很方便(以避免沖突) - 類似於:
string file = Path.Combine(dir, Guid.NewGuid().ToString() + ".tmp");
// perhaps check File.Exists(file), but it would be a long-shot...
bool canCreate;
try
{
using (File.Create(file)) { }
File.Delete(file);
canCreate = true;
}
catch
{
canCreate = false;
}
您可以使用CAS來驗證沒有.NET策略(caspol)限制在該位置創建和寫入文件。
但這不會涵蓋Windows政策。 您必須手動檢查NTFS策略。 即便如此,也有一些流程可以決定您不允許創建文件(例如病毒掃描程序)。
最好和最完整的方法是嘗試它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.