2013-10-08 5 views
4

내가 원격 네트워크 경로로 내 C# 코드에 의해 파일 생성 (Excel 파일)을 복사하려고를 찾을 수없는 네트워크 경로를 던지는 나는 다음과 같이 접근해야합니다 :파일 복사가 간헐적으로

string folder = "\\\\testing-path\\Audit\\Reports"; 
if (!(Directory.Exists(folder + "\\" + DateTime.Now.ToString("MM-dd-yyyy") + "\\" + "Audit"))) 
{ 
    Directory.CreateDirectory(folder + "\\" + DateTime.Now.ToString("MM-dd-yyyy") + "\\" + "Audit"); 
} 
folder = folder + "\\" + DateTime.Now.ToString("MM-dd-yyyy") + "\\" + "Audit"; 

if (File.Exists(folder + "\\Audit- " + fname + ".xlsx")) 
{ 
    File.Delete(folder + "\\Audit- " + fname + ".xlsx"); 
} 
string fileName = folder + "\\Audit- " + fname + ".xlsx"; 
wb.SaveAs(fileName, 
    Excel.XlFileFormat.xlWorkbookDefault, null, null, 
    false, false, Excel.XlSaveAsAccessMode.xlNoChange, 
    null, null, null, null, null); 

을 이 코드는 완벽하게 8/10 번 작동하고 네트워크 오류 (네트워크 경로를 찾을 수 없음)를 2 번 던졌습니다. 원격 경로에서이 오류가 발생하면이 코드를 실행하는 컴퓨터에서 run 명령을 사용하여 위의 원격 경로를 열고 정상적으로 액세스 할 수 있습니다. 수동으로 열린 폴더를 닫고 코드를 다시 실행하면 문제가 해결됩니다. 무엇이 문제 일 수 있습니까? 내가 여기서 뭔가 잘못하고있는거야?

추신 : 나는 또한 Excel 파일을 바탕 화면에 저장하려고 시도한 다음 File.Copy을 사용하고이 간헐적 인 동작을 변경하지 않았습니다.

+0

안녕하세요 - 혹시 해결책을 찾거나 원인습니까? 프로덕션 시스템에서도 비슷한 문제가 발생하지만 거의 발생하지는 않습니다. – MorganTiley

+0

나는 해결책을 찾았지만 해결 방법은 폴더를 열고 닫은 다음 위의 논리를 수행하는 것입니다. – TRR

답변

1

확인 다음 사항

1) First you have to check whether machine is on or off 
2) Then check you have access rights to put the file in that particular folder and dont 
    put it inside ' C ' Drive because C is not accessible for other users in network put it inside D or E drive. 
3) If Folder is Missing You have to Create A Folder first 

하고 무엇을 'WB'

if(!Directory.Exists("\\\\testing-path\\Audit\\Reports")) 
    Directory.Create("\\\\testing-path\\Audit\\Reports"); 

를 사용하여 원격 위치에서 다음

              FilePath  Byte 

File.ReadAllBytes("FilePath/FileName.Extension",byte) // D:\\Test.xls,12878 

파일 경로 바이트

File.WriteAllBytes("FilePath/FileName.Extension",byte)// D:\\Test123.xls,12878 

확인 원격 기계에 경로를 액세스이 링크

: http://www.codeproject.com/Questions/184633/Connect-to-a-shared-folder-using-ip-address-in-vb6

+0

1) 컴퓨터가 켜져 있고 실행에서 해당 경로를 열 수 있습니다. 2) C 드라이브가 아닙니다 그래서 문제가 없습니다 3) 폴더가없는 경우 폴더를 만듭니다. Wb는 내가 저장하려고하는 Excel 통합 문서입니다. 나는 모든 종류의 사본을 시도했지만 그들은 일을하지 않았다. 도와 주셔서 감사합니다 :) – TRR

+0

File.WriteAllBytes로 시도해 ... !!! – Aravind

+0

행운, 여전히 동일한 문제 : ( – TRR

관련 문제