簡體   English   中英

如何檢查我是否可以在特定文件夾中創建文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM