FtpWebRequest
을 사용하여 ftp에서 내 파일을 다운로드하고 있습니다. 그러나, 응용 프로그램이 내가 파일을 쓰는 것을 선언하는 라인 FileStream
에 갔을 때. 다음은 UnauthorizedAccessException : 경로에 대한 액세스가 거부되었습니다. winform
public void Download(List <string> path)
{
try
{
string timenow = DateTime.Today.Year.ToString() + "_" + DateTime.Today.Month.ToString() + "_" + DateTime.Today.Day.ToString() + "_" + DateTime.Today.Hour.ToString() + "_" + DateTime.Today.Minute.ToString() + "_" + DateTime.Today.Second.ToString();
DirectoryInfo dir = new DirectoryInfo(@"C:\StudySystemFile\" + timenow);
if (!dir.Exists)
dir.Create();
foreach (string p in path)
{
FtpWebRequest request;
request = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftp.Hostname + p));
request.Credentials = new System.Net.NetworkCredential(ftp.FtpAccount, ftp.FtpPassword);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.KeepAlive = false;
request.UseBinary = true;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream reader = response.GetResponseStream();
FileStream file = new FileStream(@"C:\StudySystemFile\" + timenow, FileMode.Create, FileAccess.ReadWrite);
byte[] buffer = new byte[1024];
int bytesRead = reader.Read(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
file.Write(buffer, 0, bytesRead);
bytesRead = reader.Read(buffer, 0, buffer.Length);
}
reader.Close();
file.Close();
response.Close();
Console.WriteLine(p);
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
}
사용자에게 파일을 저장할 위치를 묻거나 응용 프로그램 데이터와 같은 위치에 저장하거나 응용 프로그램에 높은 권한이 있음을 확인합니다 (그래도 안티 바이러스로 인해 액세스가 차단 될 수 있음). –