Programımızın (C#) birkaç örneğini tek bir bilgisayarda çalıştırıyoruz. Her durumda kodumuz, Path.GetTempFile() yönteminin yardımıyla "çok sayıda" geçici dosya oluşturmaya çalışır. Ben geçici klasörü kontrol edilip garip bir şey bulamadık Path.GetTempFileName
Exception: Access to the path is denied.
StackTrace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Path.GetTempFileName()
: boş disk yeterlidir, geçici dosya sayısı çok büyük değil, vs.
ben Ve bazen, program haricinde başarısız sadece bir açıklaması vardır: bir örnek geçici dosya alır ve açar, ancak aynı zamanda, başka bir örnek de geçici dosyanın adını alır ve açmaya çalışır. Doğruysa? Evet ise, sorunun nasıl çözüleceği, nasıl bir problemin nasıl anlaşılacağı değil mi?
UPD: Windows Server
teşekkür ederiz 2008 HPC, Igor ile bilgisayarda başarısız oldu. Path
sınıf için
Muhtemelen sanmıyorum. "GetTempFileName" yöntemi iş parçacığı güvenli değilse veya iyi rastgele bir ad oluşturmadıysa, orada olmaz. Tam sebebin ne olduğunu bildiğimden değil ... – Noldorin
Neden olduğunu düşündüğünüz şeyi ortadan kaldırmak için, geçici bir klasör oluşturmadan önce bir * if (Directory.Exists (myTempFolderName)) * yapın - varsa yeni isim. – slugster
Yani, Path.GetTempFileName() kullanmak iyi bir uygulama değil mi? Yöntem "çoklu iş parçacığı veya işlem kaydetme" yöntemini kullanarak nasıl kullanabiliriz? Özel bir uzantıya sahip geçici bir klasöre ihtiyacım olduğunda, benzersiz dosya adı oluşturmak için Guid kullanıyorum. – constructor