PDA

View Full Version : سوال: System.IO.IOException: The process cannot access the file



koorosh-soft
یک شنبه 15 آبان 1390, 23:01 عصر
سلام
وقتی میخوام یک فایل رو جا به جا یا حذف کنم خطا عدم دسترسی میده حتی وقتی هم میخوام بنویسم بازم خطا صادر میکنه مشکل کجاست ؟!


Public Class Form1
'┏━━━┓╋╋╋╋┏┓╋╋╋╋┏ ┏━━┓
'┃┏━┓┃╋╋╋╋┃┃╋╋╋╋┃ ┃┏┓┃
'┃┃╋┗╋━━┳━┛┣━━┳━┛ ┃┗┛┗┳┓╋┏┓
'┃┃╋┏┫┏┓┃┏┓┃┃━┫┏┓ ┃┏━┓┃┃╋┃┃
'┃┗━┛┃┗┛┃┗┛┃┃━┫┗┛ ┃┗━┛┃┗━┛┃
'┗━━━┻━━┻━━┻━━┻━━ ┗━━━┻━┓┏┛
'╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋ ╋╋╋╋┏━┛┃
'╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋╋ ╋╋╋╋┗━━┛
'
'┏━━━┳━━━━┳┓╋╋┏━━ ╋┏┓
'┃┏━┓┃┏┓┏┓┃┃╋╋┃┏┓ ┏┛┗┓
'┃┗━┛┣┛┃┃┗┫┗━┓┃┗┛ ╋┓┏┛
'┃┏━┓┃╋┃┃╋┃┏┓┃┃┏━ ┣┫┃
'┃┗━┛┃╋┃┃╋┃┃┃┃┃┗━ ┃┃┗┓
'┗━━━┛╋┗┛╋┗┛┗┛┗━━ ┻┻━┛
Const filename As String = "backgroundDefault.jpg"
Dim Adress As String = System.Environment.GetFolderPath(Environment.Speci alFolder.System)
Public Sub RefreshForm()
Dim bg As String
bg = Adress + filename
If System.IO.File.Exists(bg) Then
Me.BackgroundImageLayout = ImageLayout.Stretch
Me.BackgroundImage = Image.FromFile(bg)
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Adress += "\oobe"
If Not (System.IO.Directory.Exists(Adress + "\info")) Then System.IO.Directory.CreateDirectory(Adress + "\info")
Adress += "\info"
If Not (System.IO.Directory.Exists(Adress + "backgrounds")) Then System.IO.Directory.CreateDirectory(Adress + "\backgrounds")
Adress += "\backgrounds\"
RefreshForm()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim pic() As Byte
Try
If System.IO.File.Exists(Adress + filename) Then
If MessageBox.Show("Do You Want Remove Current Picture ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.No Then Exit Sub
End If
Dim Dlg As New OpenFileDialog
Dlg.Title = "Open Background File"
Dlg.Filter = "*.jpg|*.jpg"
Dlg.ShowDialog()
If Dlg.FileName <> "" Then
Dim ext As String = IO.Path.GetExtension(Dlg.FileName)
pic = IO.File.ReadAllBytes(Dlg.FileName)
IO.File.WriteAllBytes(Adress + filename, pic)
End If
RefreshForm()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

meisam3322
شنبه 05 آذر 1390, 21:43 عصر
حتما آدرس مبدا رو اشتباهی دادی یا اینکه فایل توی برنامه شما یا برنامه دیگه باز می باشد

koorosh-soft
یک شنبه 06 آذر 1390, 14:42 عصر
حتما آدرس مبدا رو اشتباهی دادی یا اینکه فایل توی برنامه شما یا برنامه دیگه باز می باشد

آدرس درست هست . file in use میده . با unlocker که نگاه کردم svhost استفاده میکنه ! برنامه که Stop میشه Svhost هم دیگه از فایل استفاده نمی کنه !