मुझे यह जानने की ज़रूरत है कि क्या मैं किसी विशिष्ट फ़ोल्डर में फ़ाइल बना सकता हूं, लेकिन अनुमतियों, डुप्लिकेट फ़ाइलों आदि जैसे चेक करने के लिए बहुत सी चीजें हैं I मैं File.CanCreate(@"C:\myfolder\myfile.aaa"
जैसे कुछ ढूंढ रहा हूं), लेकिन इस तरह की कोई विधि नहीं मिली है। एकमात्र चीज जो मैंने सोचा था वह एक डमी फ़ाइल बनाने और अपवादों की जांच करने का प्रयास करना है, लेकिन यह एक असभ्य समाधान है जो प्रदर्शन को भी प्रभावित करता है। क्या आप एक बेहतर समाधान जानते हैं?यह जांचने के लिए कि क्या मैं किसी विशिष्ट फ़ोल्डर में फ़ाइल बना सकता हूं
6
A
उत्तर
14
असल में, एक डमी फ़ाइल बनाने के अधिकांश अनुप्रयोगों में एक बड़ा प्रदर्शन प्रभाव नहीं होने वाला है। बेशक, आप उन्नत अगर बनाने के साथ अनुमतियाँ नहीं बल्कि नष्ट यह थोड़ा बालों मिल सकता है ...
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;
}
1
आप CAS का उपयोग यह सत्यापित करने के लिए कर सकते हैं कि .NET नीतियां (कैस्पोल) उस स्थान पर फ़ाइल बनाने और लिखने को प्रतिबंधित कर रही हैं।
लेकिन इसमें विंडोज नीतियों को शामिल नहीं किया जाएगा। आपको एनटीएफएस नीतियों को मैन्युअल रूप से जांचना होगा। और फिर भी ऐसी प्रक्रियाएं हैं जो तय कर सकती हैं कि आपको फ़ाइल बनाने की अनुमति नहीं है (उदाहरण के लिए एक वायरस स्कैनर)।
सबसे अच्छा और सबसे पूरा तरीका यह कोशिश करना है।
संबंधित मुद्दे
- 1. यह जांचने के लिए कि फ़ाइल
- 2. यह जांचने के लिए कि कोई स्ट्रिंग एक विशिष्ट पैटर्न
- 3. फोनगैप: किसी विशिष्ट फ़ोल्डर में फ़ाइल बनाएं
- 4. यह जांचने के लिए कि क्या XMLHttpRequest भेजता है() फ़ाइल
- 5. यह जांचने के लिए कि क्या PKAddPassesViewController
- 6. यह जांचने के लिए कि फ़ोल्डर में कोई फ़ाइल मौजूद है या नहीं?
- 7. यह जांचने के लिए कि कोई फ़ॉन्ट किसी विशिष्ट शैली का समर्थन करता है
- 8. यह जांचने के लिए कि क्या तत्व वर्तमान में
- 9. उबंटू में मैं सार्वजनिक HTML फ़ोल्डर कैसे बना सकता हूं?
- 10. यह जांचने के लिए कि कोई ऑब्जेक्ट किसी निश्चित प्रकार
- 11. यह जांचने के लिए कि क्या स्ट्रिंग में केवल विशिष्ट वर्ण हैं
- 12. क्या मैं चींटी प्रतिलिपि कार्य ओएस-विशिष्ट बना सकता हूं?
- 13. मैं किसी विशिष्ट उपयोगकर्ता के लिए Windows "विशेष फ़ोल्डर" का मार्ग कैसे प्राप्त कर सकता हूं?
- 14. यह जांचने के लिए कि क्या EXE को LARGEADDRESSAWARE
- 15. यह जांचने के लिए कि फ़ाइल बाइनरी है या नहीं?
- 16. क्या मैं प्रोजेक्ट विशिष्ट कोड स्निपेट बना सकता हूं?
- 17. यह जांचने के लिए कि .NET 4.0
- 18. यह जांचने के लिए कि बैश स्क्रिप्ट
- 19. यह जांचने के लिए कि जावास्क्रिप्ट सरणी
- 20. यह जांचने के लिए कि कोई फ़ाइल url
- 21. यह जांचने के लिए कि वर्डप्रेस
- 22. यह जांचने के लिए कि क्या ऑब्जेक्ट जेएसओएन स्ट्रिंग
- 23. यह जांचने के लिए कि क्या सभी आइटम LINQ
- 24. रुबी - यह जांचने के लिए कि क्या किसी स्ट्रिंग में सरणी में सभी शब्द हैं?
- 25. डेल्फी + Synapse: यह जांचने के लिए कि क्या मैं अभी भी कनेक्ट हूं
- 26. यह जांचने के लिए कि क्या किसी स्ट्रिंग में अंग्रेज़ी अक्षरों (ए-जेड) हैं?
- 27. यह जांचने के लिए कि क्या GUID शून्य है
- 28. यदि मैं अस्तित्व में नहीं हूं तो मैं वीबी में फ़ोल्डर कैसे बना सकता हूं?
- 29. यह जांचने के लिए कि java.lang.reflect.Type एक Enum
- 30. मैं बैश में एक विशिष्ट एक्सटेंशन के साथ एक temp फ़ाइल कैसे बना सकता हूं?
नोट, हालांकि यह जांच कर रहा है कि क्या आप फ़ाइल बना सकते हैं (हालांकि किया गया) और फिर, बाद में, वास्तव में फ़ाइल बनाने से अभी भी एक त्रुटि उत्पन्न हो सकती है (आपके पास यहां रेस-हालत है)। इस प्रकार, यह आमतौर पर सबसे अच्छा होता है, केवल (अंतिम) फ़ाइल को पहली जगह बनाने और संभावित त्रुटियों/अपवादों को संभालने के लिए। –
आप सही हैं लेकिन मैं बाद में उपयोग के लिए यह जानकारी प्रदान कर रहा हूं, अगर मैं इसके बाद अनुमतियां बदलता हूं, तो मैं केवल इस जानकारी को देने के लिए जिम्मेदार हूं, एक और प्रकार की त्रुटि फेंक दी जाएगी। –