Saya mengalami masalah ketika saya mencoba menghapus file saya tetapi saya mendapatkan pengecualian.
if (result == "Success")
{
if (FileUpload.HasFile)
{
try
{
File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
string filename = Path.GetFileName(btnFileUpload.FileName);
btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
}
catch (Exception ex)
{
Message(ex.ToString());
}
}
}
Saya juga harus mencatat bahwa folder yang saya coba hapus memiliki kontrol penuh terhadap layanan jaringan.
Pesan pengecualian penuh adalah:
System.UnauthorizedAccessException: Akses ke jalur 'C: \ Users \ gowdyn \ Documents \ Visual Studio 2008 \ Projects \ hybrid \ hybrid \ temp_loginimages \ enviromental.jpg' ditolak. di System.IO .__ Error.WinIOError (Int32 errorCode, String maybeFullPath) di System.IO.File.Delete (String path) di hybrid.User_Controls.Imgloader_Add_Edit_Tbl.btnUpdate_Click (pengirim objek, EventArg e) di C: \ Users \ gow Documents \ Visual Studio 2008 \ Projects \ hybrid \ hybrid \ User_Controls \ Imgloader_Add_Edit_Tbl.ascx.cs: baris 242
Ada ide?
sumber
Jawaban:
Menurut Metode File.Delete ...
Sebuah
UnauthorizedAccessException
cara salah satu dari 4 hal:sumber
Path is a directory.
terima kasih atas tip ini :) Ini membantu saya.Saya juga punya masalah, maka saya tersandung pada posting ini. Saya menambahkan baris kode berikut sebelum dan sesudah Salin / Hapus.
Menghapus
Menyalin
sumber
Ini adalah masalah lama, tetapi saya menabraknya saat mencari. Ternyata saya kehilangan komponen nama file yang sebenarnya di jalur penyimpanan untuk SaveAs ...
sumber
Ketika pengguna mencoba terhubung ke situs Web Anda, IIS memberikan koneksi ke akun IUSER_ComputerName , di mana ComputerName adalah nama server tempat IIS berjalan. Secara default, akun IUSER_ComputerName adalah anggota grup Tamu. Grup ini memiliki batasan keamanan. Coba akses besar ke IUSER_ComputerName ke folder itu
Berikut ini jawaban yang dijelaskan dengan sangat baik tentang keamanan IIS
Semoga ini membantu
sumber
Klik kanan pada Visual studio dan klik Jalankan sebagai Administrator
sumber
Saya mendapatkan kesalahan karena saya tidak menyadari bahwa tujuan harus berupa file. Saya memiliki folder sebagai parameter kedua (yang berfungsi dalam cmd). dan saya dapatkan
Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.
karena C #File.Move
menginginkan file di sana, tidak hanya untuk parameter pertama, tetapi untuk yang kedua juga, dan jadi jika Anda meletakkan direktori sebagai parameter kedua, ia mencoba untuk menulis file sepertic:\crp
ketika Anda memiliki direktori bernamac:\crp
.ini akan salah
File.Move(args[0],"c:\\crp");
Jadi, ini benar
File.Move(args[0],"c:\\crp\\a.a");
Hal yang sama berlaku untuk
File.Copy
sumber
Jika ini adalah situs web IIS yang mengalami masalah, periksa properti Identity dari pengaturan lanjutan untuk kumpulan aplikasi yang digunakan situs atau aplikasi. Anda mungkin menemukan bahwa itu diatur ke ApplicationPoolIdentity, dan dalam hal ini maka ini adalah pengguna yang harus memiliki akses ke jalur.
Atau Anda bisa menggunakan gaya lama dan cukup mengatur Identity to Network Service, dan memberikan akses pengguna Layanan Jaringan ke jalur.
sumber
Anda perlu mengubah hak istimewa folder yang Anda coba hapus dari / simpan ke. Klik kanan pada folder yang berisi dan gunakan tab Keamanan untuk mengizinkan hak memodifikasi untuk pengguna di mana aplikasi Anda berjalan.
sumber
Saya memukul hal yang sama. Periksa untuk memastikan bahwa file tersebut TIDAK TERSEMBUNYI.
sumber
Saya juga menghadapi masalah ini ketika layanan jendela saya mulai melempar pengecualian
Jadi sebagai solusi, saya memeriksa akun pengguna yang terkait dengan layanan saya, seperti yang ditunjukkan pada tangkapan layar di bawah ini
Jadi dalam kasus saya itu adalah LAYANAN JARINGAN
Dan kemudian pergi ke properti folder untuk memeriksa apakah akun pengguna terkait juga ada di bawah tab izin mereka. Itu hilang dalam kasus saya dan ketika saya menambahkannya dan itu memperbaiki masalah saya.
Untuk informasi lebih lanjut, silakan periksa tangkapan layar di bawah ini
sumber
masalah yang sama bagi saya juga, saya menunjuk folder bukan file.
jadi pastikan di path, beri path + nama file
sumber
Periksa properti file Anda. Jika read-only dicentang, hapus centang. Ini adalah masalah pribadi saya dengan UnauthorizedAccessException.
sumber
Saya mendapatkan kesalahan ini dan menyelesaikannya hanya dalam beberapa saat. Tidak tahu mengapa semua folder saya hanya-baca, saya membatalkan hanya-baca dan menerapkannya. Namun, ini masih bersifat read-only. Jadi saya memindahkan file ke folder root, itu berfungsi - sangat aneh.
sumber
Pengecualian UnauthorizedAccessException dilemparkan ketika sistem operasi menolak akses karena kesalahan I / O atau kesalahan keamanan.
Jika Anda mencoba mengakses file atau kunci registri, pastikan itu bukan hanya baca .
sumber
Jika Anda menggunakan BitDefender, ada kemungkinan besar fitur File Aman -nya memblokir operasi Anda. Ini adalah bentuk perlindungan Ransomware yang hadir dengan beberapa versi yang lebih canggih.
Pastikan untuk memberikan akses aplikasi Anda di BitDefender dan coba lagi.
Beberapa perincian lebih lanjut dapat ditemukan di halaman dukungan BitDefender ini .
sumber
Saya memiliki masalah yang sama pada situs web yang baru dipindahkan di server bersama. Diselesaikan melalui pengaturan panel host web (DotNetPanel) benar "izin izin tulis". Jadi jika Anda berada di server bersama sebelum meninjau semua kode, lihatlah konfigurasi server dan dapat menghemat banyak waktu.
sumber
Perlu diketahui bahwa jika Anda mencoba untuk mencapai jalur folder bersama dari kode Anda, Anda tidak hanya perlu memberikan izin yang tepat ke folder fisik melalui tab keamanan. Anda juga perlu "berbagi" folder dengan pengguna kumpulan aplikasi yang sesuai melalui Tab Berbagi
sumber
Saya menghadapi kesalahan ini karena
Kadang-kadang ketika saya
Combine
yang jalan dengan Nama File danFileName = ""
Itu menjadi
Path Directory
bukanfile
masalah yang disebutkan di atasjadi Anda harus memeriksa
FileName
seperti inisumber
Saya memiliki kesalahan yang tepat ketika menghapus file. Itu adalah Layanan Windows yang berjalan di bawah Akun Layanan yang tidak dapat menghapus dokumen .pdf dari Folder Bersama walaupun itu memiliki Kontrol Penuh folder.
Apa yang berhasil bagi saya adalah menavigasi ke tab Keamanan di Folder Bersama> Lanjutan> Bagikan> Tambah.
Saya kemudian menambahkan akun layanan ke grup administrator, menerapkan perubahan dan akun layanan kemudian dapat melakukan semua operasi pada semua file dalam folder itu.
sumber
Bagi mereka yang mencoba membuat aplikasi UWP (Universal Windows), izin file jauh lebih terbatas, dan secara umum ditolak secara default. Ini juga menggantikan izin pengguna sistem. Anda pada dasarnya hanya akan memiliki akses ke file di salah satu
Anda dapat membaca lebih lanjut di sini untuk perincian => https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions
sumber
Dalam kasus saya masalahnya adalah Norton. Program in-house saya tidak memiliki tanda tangan digital yang tepat dan ketika mencoba menghapus file itu memberi UnauthorizedAccessException.
Jika memberi Anda pemberitahuan, Anda bisa mengatasinya dari sana. Dalam kasus saya itu tidak memberikan pemberitahuan yang saya perhatikan. Jadi, inilah cara mencegah Norton memblokir program.
sumber
Saya juga menghadapi masalah yang sama ketika mencoba melakukan ini setelah ditempatkan di server:
Saya memberikan izin dalam IIS ke grup lain termasuk administrator dan masalah saya terpecahkan.
sumber
Saya telah menemukan bahwa kesalahan ini dapat terjadi pada DESIGN MODE sebagai lawan dari? mode eksekusi ... Jika Anda melakukan sesuatu seperti membuat anggota kelas yang memerlukan akses ke file .INI atau .HTM (file konfigurasi, file bantuan), Anda mungkin TIDAK ingin menginisialisasi item dalam deklarasi, tetapi inisialisasi nanti di FORM_Load () dll ... Ketika Anda DO menginisialisasi ... Gunakan pernyataan penjaga IF:
Ini akan menjaga MSVS Designer dari mencoba membuat file INI atau HTM ketika Anda berada dalam mode desain.
sumber
Saya memiliki kesalahan ini ketika saya mencoba untuk mengganti nama folder dengan sangat cepat setelah dipindahkan atau dibuat.
Sederhana
System.Threading.Thread.Sleep(500);
menyelesaikannya:sumber
Dalam kasus khusus saya, saya berulang kali membuat dan menghapus 10.000 folder. Tampak bagi saya bahwa masalahnya adalah meskipun metode
Directory.Delete(path, true)
kembali, mekanisme OS bawahan mungkin masih menghapus file dari disk. Dan ketika saya mulai membuat folder baru segera setelah penghapusan yang lama, beberapa dari mereka masih terkunci karena belum sepenuhnya dihapus. Dan saya mendapatkan System.UnauthorizedAccessException: "Akses ke jalan ditolak".Menggunakan
Thread.Sleep(5000)
setelahDirectory.Delete(path, true)
memecahkan masalah itu. Saya sepenuhnya setuju bahwa ini tidak aman, dan saya tidak mendorong siapa pun untuk menggunakannya. Saya akan senang di sini pendekatan yang lebih baik untuk memecahkan masalah ini untuk meningkatkan jawaban saya. Sekarang saya hanya memberikan ide mengapa pengecualian ini dapat terjadi.sumber
Pertama-tama, periksa lintasan apakah karakter titik dua (:) tidak ada atau tidak setelah huruf drive. Jika titik dua tidak hilang maka Anda dapat memeriksa apakah izin akses / tulis diberikan untuk jalur itu. Saya memiliki masalah yang sama dan saya hanya kehilangan usus besar, izin dan yang lainnya baik-baik saja.
akan bekerja dengan baik tetapi,
akan memberi Anda kesalahan penolakan akses.
sumber
Saya mencoba menggunakan System.IO.File.OpenWrite (path)
dan itu tidak berhasil karena saya hanya melewatkan OpenWrite () path ke direktori, tetapi membutuhkan path sampai ke file yang ingin Anda tulis. Jadi path lengkap termasuk filename.extension pada akhirnya perlu diteruskan ke OpenWrite untuk menghindari UnauthorizedAccessException
sumber
Saya juga berlari ke posting ini karena berurusan dengan masalah yang sama. Sepertinya file sedang digunakan dan karenanya tidak dapat menulis ke sana. Meski tidak bisa mengetahuinya, proses mana yang menggunakannya. Keluar dari pengguna lain yang masuk di kotak itu, jangan melihat pengguna yang memegangnya. Kiat singkat tentang cara menemukan yang sama.
Terima kasih, Lakshay (pengembang)
sumber
Untuk mengatasi masalah ini, saya mengikuti pendekatan Scot Hanselman di Sistem Debugging. Tidak DiotorisasiAccessException (sering diikuti oleh: Akses ke jalur ditolak) artikel, kode dengan contoh di bawah ini:
sumber