==========================================================================================
C#
==========================================================================================
<C#>
=스레드 동기화

-cf)mutex object - 스레드 동시 접근 불가능
-lock 사용


-lock 사용 X


==파일




=스트림
-메모리에서 하드디스크로 데이터를 옮길 때 스트림을 만들어 둘 사이를 연결한 뒤 메모리의 데이터를 바이트 단위로 하드디스크로 옮김.
-Wrapper class(어떤 언어로 해야할지 정할수 있음)
=
using System; using System.IO;
namespace FILE01_directoryinfo { class Program { static void Main(string[] args) { DirectoryInfo dinfo = new DirectoryInfo(@"C:\TC\LIB"); if (dinfo.Exists) { Console.WriteLine("전체 경로 : {0}", dinfo.FullName); Console.WriteLine("디렉토리 이름 : {0}", dinfo.Name); Console.WriteLine("생성일 : {0}", dinfo.CreationTime); Console.WriteLine("디렉토리 속성 : {0}", dinfo.Attributes); Console.WriteLine("루트 경로 : {0}", dinfo.Root); Console.WriteLine("부모 디렉토리 : {0}", dinfo.Parent); } else { Console.WriteLine("디렉토리가 존재하지 않습니다"); } Console.ReadLine(); } } }
|


=
using System; using System.IO;
namespace FILE02_fileinfo { class Program { static void Main(string[] args) { FileInfo finfo = new FileInfo(@"C:\TC\LIB\CC.LIB"); if (finfo.Exists) { Console.WriteLine("폴더 이름 : {0}", finfo.Directory); Console.WriteLine("파일 이름 : {0}", finfo.Name); Console.WriteLine("확장자 : {0}", finfo.Extension); Console.WriteLine("생성일 : {0}", finfo.CreationTime); Console.WriteLine("파일 크기 : {0}", finfo.Length); Console.WriteLine("파일 속성 : {0}", finfo.Attributes); } else { Console.WriteLine("파일이 존재하지 않습니다"); } } } }
|


=
using System; using System.IO;
namespace FILE03_drectory_fileinfo { class Program { static void Main(string[] args) { if(args.Length < 1) { Console.WriteLine("사용법 : FileExam3.exe [디렉토리 경로]"); return; } DirectoryInfo dinfo = new DirectoryInfo(args[0]); if(dinfo.Exists) { DirectoryInfo[] dir = dinfo.GetDirectories(); // 하위디렉토리 파일 정보 출력 foreach(DirectoryInfo d in dir) { FileInfo[] files = d.GetFiles(); Console.WriteLine("디렉토리 : {0}, 포함된 파일 수: {1}", d.FullName, files.Length);
int index = 0; foreach(FileInfo f in files) { string str = string.Format("[{0}] : Name:{1}, Ext:{2}, Size:{3}, ++index, f.Name, f.Extension, f.Length); Console.WriteLine(str); } } } } } }
|
=C#매개변수




=
using System; using System.IO; using System.Linq;
namespace FILE05_dir_fileinfo { class Program { static void Main(string[] args) { string directory; if (args.Length < 1) directory = "."; else directory = args[0];
Console.WriteLine("{0} drectory Info", directory); Console.WriteLine("= Directoris :"); var directories = (from dir in Directory.GetDirectories(directory) let info = new DirectoryInfo(directory) select new { Name = info.Name, Attributes = info.Attributes }).ToList();
foreach (var d in directories) Console.WriteLine("{0} : {1}", d.Name, d.Attributes);
Console.WriteLine("- Files :"); var files = (from files in Directory.GetFiles(directory) let info = new FileInfo(file) select new { Name = info.Name, FileSize = info.Length, Attributes = info.Attributes, }).ToList(); foreach (var f in files) Console.WriteLine("{0} : {1}, {2}", f.Name, f.FileSize, f.Attributes); } } } |



=
using System; using System.IO; using System.Linq;
namespace FILE05_dir_fileinfo { class Program { static void Main(string[] args) { string directory; if (args.Length < 1) directory = "."; else directory = args[0];
Console.WriteLine("{0} drectory Info", directory); Console.WriteLine("= Directoris :"); var directories = (from dir in Directory.GetDirectories(directory) let info = new DirectoryInfo(dir) select new { Name = info.Name, Attributes = info.Attributes }).ToList();
foreach (var d in directories) Console.WriteLine("{0} : {1}", d.Name, d.Attributes);
Console.WriteLine("- Files :"); var files = (from file in Directory.GetFiles(directory) let info = new FileInfo(file) select new { Name = info.Name, FileSize = info.Length, Attributes = info.Attributes, }).ToList(); foreach (var f in files) Console.WriteLine("{0} : {1}, {2}", f.Name, f.FileSize, f.Attributes); } } }
|


=Create file / directory
-test.dat



-



-test Directory



=
http://www.codeproject.com/Articles/33786/DataGridView-Filter-Popup

http://www.codeproject.com/Articles/51889/Summary-DataGridView
http://www.codeproject.com/Articles/19735/DataGridView-with-Detail-Edit-Form-VS