2012-09-17 6 views
1

이미지를 폴더에 저장하고 폴더 경로를 데이터베이스에 저장하려고합니다.데이터베이스의 폴더 및 경로에 파일 저장

나는 이걸 File.Copy(filepath) 명령으로했지만 이미 같은 이름의 파일이 있으면 오류가 발생합니다.

이 명령의 두 번째 사항은 파일을 복사하는 파일 이름을 제공해야한다는 것입니다. 이미지가 아닌 레코드를 수정하면 파일 소스가 비어있을 수 없다는 오류가 발생합니다.

나는 또한 Picture1.image.save(filename)을 시도했지만 기존 명령을 덮어 쓰는 명령을 찾지 못했습니다.

이 모든 작업을 수행하는 가장 간단한 방법을 제공해주세요.

+0

중복에 문제가있는 경우 데이터베이스 디자인에 문제가있는 것 같습니다. 디자인이 잘못되었거나 데이터베이스에 액세스하는 방식이 잘못되면 안됩니다. –

답변

3

동일한 이름의 기존 파일을 덮어 쓸지 여부를 결정하는 bool을 허용하는 File.Copy() 메서드에 과부하가 있습니다.

http://msdn.microsoft.com/en-us/library/9706cfs5.aspx

+0

선생님, File.Copy 메서드를 사용하여 이미지를 저장하기 위해 파일을 가져 가고 있기 때문에 사용하고 싶지 않습니다. 나는 이미 데이터를 수정하기를 원하지만 이미지는 수정하려고 할 때 에러가 발생했다. "Picture1.image.save (filename)"과 같은 그림 상자에서 인수를 취하고 OpenFileDialog 상자에서 인수를 가져 오려고합니다. 감사합니다. –

+0

미안하다는 것을 이해하는 데 어려움을 겪고 있습니다. File.Copy는 OpenFileDialogBox와 관련이 없습니다. 원하는대로 대상 및 소스 매개 변수를 파생시킬 수 있습니다. 단지 문자열 일뿐입니다. 이 질문에 대한 대답이 있습니까? 미안하다 붙어있는 것을보기 위해 고생하고있다. 사용자가 수행 할 수있는 작업 (정확한 단계)과 지금까지 실패한 시점을 분명하게 기술하고보다 정확하게 당신을 도울 수 있습니다. 당신의 문제가 주어지면 순간적으로, 그것은 소리가 나지 않습니다. 당신은 File을 피할 필요가 있습니다. 카피 -하지만 내가 말하는 것처럼 나는 정말로 이해하지 못합니다. –

0

File.Copy(sourceFileName, destFileName, true)는 기존 파일의 덮어 쓰기를 강제 할 것이다.

MSDN File.Copy

0
if(File.Exists(destinationFileName)) 
{ 
    File.Delete(destinationFileName); 
} 

File.Copy(sourceFileName, destinationFileName); 

sourceFileName이 (파일 이름 포함) 소스 파일의 전체 경로가 될 shoudl 참조하십시오. destinationFileName은 파일을 저장할 전체 경로 (파일 이름 포함) 여야합니다.

0

먼저 파일이 있는지 여부를 확인해야합니까? 에서는 FileInfo를 사용하여

, 오류를 방지 할 수 있습니다 이런 식으로

FileInfo file = new FileInfo(location); 
if(file.Exists()) 
{ 
File.Delete(location); 
File.Copy(srcLocation, location); 
} 

.