728x90
728x90

C# 52

C#] 디렉토리(폴더) 내 파일 조회 프로그램

Delegate 사용 연습을 하려고 간단하게 만들어본 프로그램이다.디렉토리 내 무슨 파일들이 있는지에 대해서 조회하는 프로그램이다.숨김 파일도 검색해내며, 이와 관련하여 FileAttribute와 FileInfo를 사용했다.과거에 만든 프로그램이라서 아이콘은 적용시켜놓은 게 없고, 파일도 없어서 수정도 불가능하다.시간 나면 다시 만들어보겠지만, 별 기능도 없는 것이고 이와 관련된 유사 프로그램을 이미 만들어서 다시 만들어 재배포할 일은 없을 것 같다.

[Android] 자마린 안드로이드 가이드 따라가기 #2

지금까지 애플리케이션을 구동시키는 소스를 작성했다.이것이 정상적으로 작동하게 하기 위해서는 한 가지 해줘야 하는 작업이 있는데, 바로 '퍼미션 설정'이다.앱 개발을 해본 사람들은 알겠지만, 스마트폰의 어떤 것에 접근하기 위해 권한 요청을 하는 작업이다. 참고로, 접근 권한에 대해서 좀 더 엄격해졌다. 과거에는 앱이 설치되는 즉시 명시해놓은 접근 권한에 대해서는 암묵적으로 동의하는 것으로 간주하고 앱 설치 이후에는 명시해놓은 정보들에 무차별 접근했으나, 최근 법이 바뀌어, 사용자가 설치하더라도 해당 권한에 접근하려는 경우 반드시 거기에 따른 권한 허가를 받아야만 한다. 퍼미션에 대한 것은 안드로이드 스튜디오에서와 마찬가지로 AndroidManifest.xml에서 관리한다. 이외에도 xml에 직접 코드를 넣..

[Android] Xamarin(자마린) 시작하기

진정한 크로스 플랫폼 개발 툴로, 이상적인 경우 10~15% 내외의 OS별 특징적인 설정을 제외하고는 나머지 모든 것을 공유하게 끔 하는 마법의 도구로 불려진다고 한다. 자마린 하나로 거의 완성형에 가까운 앱을 만들 수 있다는 것과 마이크로소프트가 강력하게 푸쉬하고 있는 C#, Visual Studio를 이용할 수 있다는 점이 크게 장점이라고는 한다. 개인적으로 양대OS(안드로이드, iOS)별 네이티브 앱 개발에 이미 능숙한 사람들이 모여 각자의 언어(java, Swift)로 다루어 내는 것이 훨씬 빠르지 않을까 하는 생각이긴 하지만, 향후 생산성 측면에서는 자마린도 나쁘지 않다고 생각한다. 뭐 이런저런 이야기는 다 고사하고, 필자에게는 C#으로 플랫폼을 뛰어넘는 앱 개발이 가능하다는 것 그 자체가 매력..

C#] 접근 수정자(Acces Modifier)

캡슐화를 강화하는 목적으로 형식이나 형식의 멤버의 접근성(accessibility)을 설정할 수 있으며, 그 형식이나 멤버에 다른 어떤 형식이나 어셈블리가 접근할 수 있는지 결정함.접근성을 설정하기 위해 형식이나 멤버 선언 시 적용하는 다섯 가지 접근자가 존재함. - public모든 형식과 어셈블리가 접근 가능한 공용.열거형이나 인터페이스의 모든 멤버에는 암묵적으로 이 수준이 적용됨. - internal형식이 속한 어셈블리나 그 어셈블리와 friend 관계인 어셈블리에서만 접근 가능함.비내포 형식(non-nested type; 다른 형식에 내포된 것이 아닌 형식)의 기본 접근성 - private멤버가 속한 형식 안에서만 접근 가능한 전용.이는 클래스나 구조체 멤버들의 기본 접근성. - protected멤..

C#] 리스트뷰 항목(아이템) 더블 클릭 시 항목 읽어오기

C#] 리스트뷰 항목 더블클릭 시 항목 읽어오기 리스트뷰에 있는 항목들에 대해서 더블클릭을 하면그 항목의 정보들에 대해서 조회가 필요한 경우가 있다. 기본적으로 다룰 수 있는 여러 가지 이벤트를 이용하는 방법들이 많다.MouseDown이나 다른 여러 가지 이벤트를 사용하는 꼼수들이 존재하지만내가 원하던 것에 가장 근접한 방식은MouseDoubleClick 이벤트를 이용하는 것이었다. 이벤트 자체는 마우스를 이용해 더블 클릭을 하면 발생하지만,문제는 리스트뷰의 특정 항목에서만 작동하는 게 아니라,리스트뷰에 대한 더블클릭으로 간주되는 것이라서 항목 조회가 되는 건 아니다.(MouseDown이나 Hit를 사용하는 것도 이 때문이지만 구현이 복잡해진다.) 여기서 조금의 꼼수를 부릴 필요가 있다.어떤 항목에 대한..

파일 정리 프로그램 - DirectoryCleaner Ver 1.0

DirectoryCleaner Ver 1.0 디렉토리 클리너, 폴더 클리너, 폴더 청소기, 폴더 정리 프로그램, 파일 정리 프로그램...이 프로그램을 뭐라고 설명해야 될지 나도 잘 모르겠다.그냥 정리한다기 보다는 오래된 파일을 치워버리는 청소 느낌이라서Directory Cleaner라고 했는데 글쎄... 평소에 파일 정리를 잘하고,폴더 정리를 잘해주는 사람은 주기적으로 관리도 하는 편이라서절대 사용하지 않는 파일들이 남아 있는 경우가 드문 편이다. 필자도 나름의 정리 방법으로 정리를 하긴 하지만,가끔씩 내가 사용하는 파일인지 아닌지, 중복된 파일인지,사용한지 꽤 지난 상태에서 다시 사용한 적이 없는 파일인지 아닌지에 대한 정보가 전무해하나 하나 찾아가면서 삭제를 해야 한다. 2000년대 초중반이면,기껏해..

C#] 하위 디렉토리 내용 검색하기

C#] 하위 디렉토리 내용 검색하기 어떤 디렉토리가 있으면 그 디렉토리 내의 하위 디렉토리를 포함한모든 파일 정보나 디렉토리 정보까지 검색하여 사용해야 하는 일이 있다. 흔히 파일 정보 검색은 Directory클래스나 DirectoryInfo 클래스에서 정의된GetFiles나 GetDirectories를 등을 사용하는데어떤 속성값도 없이 경로만 지정해준 상태에서 목록을 반환하게 하면,선택한 경로 내의 하위 디렉토리에는 접근하지 않는 문제가 발생한다. 모든 하위 디렉토리의 파일 혹은 디렉토리 목록을 조회하는 것이 목적이면메서드의 파라미터에 검색 옵션을 추가해주면 된다. 12Di = new DirectoryInfo(searchPath);FileInfo[] file = Di.GetFiles("*",Search..

TPWord Ver1.0

TPWord Ver1.0 이전에 TPWord라는 허접한(?) 윈도우 응용프로그램을 올린 적이 있다.(그것이 궁금하다면 이곳으로..) 자리 잡고 앉아서 영어 단어를 외우는 것 외에도,하루에 못해도 6시간 이상 붙잡고 있는 컴퓨터 앞에서도영단어 암기 혹은 영어로 된 공학 용어 외우는 것도 괜찮을 것 같다는 생각에서바로 실행에 옮긴 프로그램이다. 당시에는 구현한 부분만 보여주는 것이 목적이었고,겨우겨우 몇 가지 윈폼을 다룰 수 있는 것이 전부였기 때문에 오류 투성이였다.오류가 아예 프로그램이 구동 가능한 정도로 문제를 일으키진 않지만,그냥 오류 있는 프로그램을 쓰는 것 자체에 대해 거부감이 있어서인지본 목적이었던 영단어 외우기에는 전혀 쓰이질 않았다. 그래도 미완성으로 뭔가를 두는 것이 마음이 편하지가 않아서..

C#] 버튼 텍스트 바꾸기

C#] 버튼 텍스트 바꾸기 버튼에 별도의 이미지를 적용하는 경우는 다른 케이스지만,간단히 버튼을 생성하고 속성 Text 내용만 변경해줘야 할 때가 있다. 이 프로그램은 TPWord로, 영단어 공부용으로 만들었다.(실제로는 영단어 공부가 되었는가에 대해서는...) 외우고자 하는 영단어 정보를 입력해두고미리 설정해둔 시간에 맞춰 영단어 뜻을 물어보는 그런 프로그램이다. 어느 때고 가리지 않고 나타나서,게임을 하다가도 나타나고, 과제를 하다가도 나타나서결국은 만든 의도랑 크게 벗어나 사용하고 있지는 않지만,이 프로그램에서 시작과 중단에 관한 버튼을 다음과 같이 사용했다. 나는 bool 타입의 변수를 별도로 선언해서버튼을 클릭 이벤트가 발생하면서 호출되는 함수에변수값을 토글하는 식으로 버튼 텍스트를 변경했는데별..

C#] System.Net.Sockets 네임스페이스

### System.Net.Sockets 네임스페이스 네트워크에 대한 엑세스를 엄격하게 제어해야하는 개발자를 위해서Windows Socket(Winsock) 관련 인터페이스를 제공하는 네임스페이스.해당 네임스페이스 하위의 TcpClient, TcpListener 및 UdpClient 클래스는TCP/UDP 방식으로 인터넷에 연결하기 위한 자세한 정보를 캡슐화하여네트워크 서비스에 대한 클라이언트 연결 제공 및 클라이언트에서 연결을 수신하는 서비스를 제공함. ## NetworkStream 클래스 네트워크 액세스를 위한 내부 데이터 스트림 제공.NetworkStream을 만들려면 연결된 Socket을 제공해야 함.제공된 Socket에 대해 NetworkStream이 가지는 FileAccess 사용 권한을 정지할..

728x90