FileInfo fi = new FileInfo(file)
FileStream fs = fi.OpenRead();
文件存在,但是OpenRead时候出异常:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.IO.FileInfo.OpenRead()
什么原因?大家帮帮忙,谢谢
14 个解决方案
#1
FileInfo的OpenRead()方法可能会抛出一下三种类型的异常:
UnauthorizedAccessException
path 为只读,或者是一个目录。
DirectoryNotFoundException
指定的路径无效,比如在未映射的驱动器上。
IOException
该文件已打开。
建议楼主好好看看出现的异常信息,确定异常错误的类型。
UnauthorizedAccessException
path 为只读,或者是一个目录。
DirectoryNotFoundException
指定的路径无效,比如在未映射的驱动器上。
IOException
该文件已打开。
建议楼主好好看看出现的异常信息,确定异常错误的类型。
#2
file 如果这个不是文件路径,建议把它写成文件的实际路径。比如:C:\
#3
try
{
....
}
catch(Exception e)
{
Response.Write(e.Message);
}
{
....
}
catch(Exception e)
{
Response.Write(e.Message);
}
#4
异常信息中应该有原因。
#5
#6
全部的异常信息我都写出来了~
#7
try
{}
catch(Exception e)
{
response.write(e.ToString);
}
{}
catch(Exception e)
{
response.write(e.ToString);
}
#8
看到异常:
System.IO.IOException: The process cannot access the file 'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process.
为什么不能访问这个文件呢?
怎样能查明不能访问的原因?
请大家指点……
System.IO.IOException: The process cannot access the file 'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process.
为什么不能访问这个文件呢?
怎样能查明不能访问的原因?
请大家指点……
#9
我这个文件是刚刚新建的文件,XslCompiledTransform 转换过来的。难道转换还没有完成?
#10
'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process
这个文件有人在用了
这个文件有人在用了
#11
为什么不直接用
FileStream _fs =new FileStream(path,FimeMode.Open,FileAccept.Read)呢
FileStream _fs =new FileStream(path,FimeMode.Open,FileAccept.Read)呢
#12
麻雀虽小
#13
文件路径正确不?
#14
找到原因了,因为XslCompiledTransform时候,用StreamWriter加载的文件,但是StreamWriter没有close掉,到这个进程不能访问这个文件,我太笨了,没看到~呵呵,谢谢!
#1
FileInfo的OpenRead()方法可能会抛出一下三种类型的异常:
UnauthorizedAccessException
path 为只读,或者是一个目录。
DirectoryNotFoundException
指定的路径无效,比如在未映射的驱动器上。
IOException
该文件已打开。
建议楼主好好看看出现的异常信息,确定异常错误的类型。
UnauthorizedAccessException
path 为只读,或者是一个目录。
DirectoryNotFoundException
指定的路径无效,比如在未映射的驱动器上。
IOException
该文件已打开。
建议楼主好好看看出现的异常信息,确定异常错误的类型。
#2
file 如果这个不是文件路径,建议把它写成文件的实际路径。比如:C:\
#3
try
{
....
}
catch(Exception e)
{
Response.Write(e.Message);
}
{
....
}
catch(Exception e)
{
Response.Write(e.Message);
}
#4
异常信息中应该有原因。
#5
#6
全部的异常信息我都写出来了~
#7
try
{}
catch(Exception e)
{
response.write(e.ToString);
}
{}
catch(Exception e)
{
response.write(e.ToString);
}
#8
看到异常:
System.IO.IOException: The process cannot access the file 'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process.
为什么不能访问这个文件呢?
怎样能查明不能访问的原因?
请大家指点……
System.IO.IOException: The process cannot access the file 'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process.
为什么不能访问这个文件呢?
怎样能查明不能访问的原因?
请大家指点……
#9
我这个文件是刚刚新建的文件,XslCompiledTransform 转换过来的。难道转换还没有完成?
#10
'D:\temp\StyleConvert\54_T_KT_01_testfile.xml' because it is being used by another process
这个文件有人在用了
这个文件有人在用了
#11
为什么不直接用
FileStream _fs =new FileStream(path,FimeMode.Open,FileAccept.Read)呢
FileStream _fs =new FileStream(path,FimeMode.Open,FileAccept.Read)呢
#12
麻雀虽小
#13
文件路径正确不?
#14
找到原因了,因为XslCompiledTransform时候,用StreamWriter加载的文件,但是StreamWriter没有close掉,到这个进程不能访问这个文件,我太笨了,没看到~呵呵,谢谢!