티스토리 뷰
Introduction
There are hundreds and hundreds of classes in the .NET framework and there are some that are really useful which you may never come across. I've been a .NET programmer for several years and I still run across classes in the framework that I've never seen before. I thought it would be cool to document some of the really useful (in my opinion) classes because other programmers may never have known they existed.
System.IO.Path
System.IO.Pathis a static class that provides many useful operations on file or directory path information in a cross-platform manner. Cross-platform manner? Yes, you can run .NET code on non-Windows machines. In case you don't know, check outMono, which is a .NET implementation for Linux, Solaris, Mac and Windows. There are several cool articles right here on Code Project about Mono - just do a search on "mono". If you're writing cross-platform code, being cognisant of your platform is key andSystem.IO.Pathcan help.TheSystem.IO.Pathclass operates on strings, not on actualFileInfo,DirectoryInfoorStreamobjects. Most of the methods act on astringor return astring. The actual work to create the file needs to be done with extra code.
How do I find the temporary directory?
stringtemppath = Path.GetTempPath(); // will generate something like C:\Documents and Settings\youraccount\Local Settings\TempHow do I generate a random file name?
stringrandomFile = Path.GetRandomFileName(); // will generate something like utbnd0fm.uyp or ewghyx4x.cvdHow do I generate a random text file?
You can use theChangeExtension()method in conjunction with theGetRandomFileName()method.
stringtemptext = Path.ChangeExtension(Path.GetRandomFileName(),".txt"); // generates something like pe054llb.txtHow do I get a unique temp file?
Ever need to generate a uniquely named file for some temporary operation?GetTempFileName()will actually generate a 0 byte file on the file system and return you the name.
stringtempfile = Path.GetTempFileName(); // will generate something like C:\Documents and Settings\youraccount\Local Settings\Temp\tmp62.tmpHow do I get the file name from a full path?
stringfilepath ="c:\\windows\\somefile.txt" file = Path.GetFileName(filepath);// returns just somefile.txt
How do I get the directory name from a file path?
stringfilepath ="c:\\windows\\somefile.txt" file = Path.GetDirectoryName(filepath);// returns just c:\windowsHow do I get the file extension?
stringfilepath ="c:\\windows\\somefile.txt" file = Path.GetExtension(filepath);// returns just .txtHow do I find invalid file name characters?
TheGetInvalidFileNameChars()will return an array of chars that are invalid to use in a file name. You can use this to check a user supplied file name before attempting to write a file to disk. There is a correspnding method for invalid path chars as well,GetInvalidPathChars().
stringuserfile ="junk.t>t"; char[] userchars = userfile.ToCharArray(); char[] invalids = Path.GetInvalidFileNameChars(); foreach(charcinuserchars) { foreach(chariininvalids) { if(c == i) thrownewException("File name contains invalid chars!"); } }Conclusion
I didn't cover ever last System.IO.Path method or property, but I hit some of the big ones. I'm going to attempt to run these on my Linux box running Mono and update the article.
'프로그래밍 > ASP.NET' 카테고리의 다른 글
| [Microsoftware] Enterprise Library 2.0 <part2> (0) | 2007.12.11 |
|---|---|
| 파일크기, 파일사이즈 알아내기 (폴더내 파일크기포함) (0) | 2007.11.24 |
| X 표시되는 이미지 효율적 처리방법 (0) | 2007.11.20 |
| 날짜 문자열을 내맘대로 만들기 (0) | 2007.11.17 |
| [C#]랜덤파일명 생성하는 방법 (0) | 2007.11.08 |
| 클라이언트 정보(ip,domain,page)가져오기 - ServerVariables (0) | 2007.11.06 |
| 클라이언트 스크립으로 서버컨트롤 호출하기 (0) | 2007.11.02 |
| Web.config 암호화 (0) | 2007.11.01 |