C#에서 삼바(Samba) 서버의 파일 사용하기
최근 대용량 파일 사용의 증가로 네트워크 드라이브를 사용하는 일이 증가하고 있습니다.
회사 내부에서도 기가비트랜으로 연결된 리눅스 기반의 NAS(Network-Attached Storage) 서버를 사용하고 있는데요.
윈도우즈 환경의 네트워크 폴더를 지원하는 Samba가 설치되어 있습니다.
아래의 그림처럼 z라는 이름의 네트워크 드라이브로 잡혀있는 것을 볼 수 있습니다.
별다른 설정없이도 윈도우즈 탐색기에서는 파일공유가 정상적으로 됩니다.
만약 Vista 이상의 운영체제에서 파일접근이 정상적으로 되지 않을 때는 아래와 같이 로컬 보안 정책(Local Security Policy)에서
LAN Manager authentication level Properties 부분을 바꾸어주시기 바랍니다.
그러나 프로그램을 작성하여 네트워크 드라이브를 접근할 때,
'파일이 존재하지 않는다' 라는 Exception이 발생할 수 있습니다.
그럴 때는 System.Management 를 Reference 추가하시고, 아래와 같은 코드를 추가하신 다음
UNC 경로로 접근하시면 로컬 드라이브와 마찬가지로 사용하실 수 있습니다.
using System.Management;
ManagementClass processClass = new ManagementClass("Win32_Process");
object[] methodArgs = { @"net use \\path\share /user:domain\username password", null, null, 0 };
object result = processClass.InvokeMethod("Create", methodArgs);
Console.WriteLine("Creation of process returned: " + result);
Console.WriteLine("Process id: " + methodArgs[3]);
"프로그래밍 / TIP& Study" 분류의 다른 글
| [퀴즈] SQLite collate 문제 (0) | 2010/07/16 |
| [TIP] XP, Vista에서 CD/DVD롬이 보이지 않을 경우 (0) | 2009/08/05 |
| [C#] WinForm 에서 Docking 순서 변경하기 (0) | 2009/07/29 |
| [WPF] InkCanvas 사용하기 (0) | 2009/06/29 |
| [C#] Control Library 만들 때 TIP (0) | 2009/06/26 |
| [C#] 자연스럽게 Pen으로 그리기 (0) | 2009/06/23 |
| [WPF] Canvas의 Width, Height Binding (0) | 2009/06/23 |
| [C#] DateTime으로 7일 후는 어떻게? (0) | 2009/06/23 |



댓글을 달아 주세요