728x90
특정 폴더 또는 특정 폴더를 포함한 서브 폴더에 있는 모든 파워포인트 파일에서 찾는 문자가 들어 있는 파일만 찾아주는 C# 프로그램 소스 입니다.
- ppt, pptx 모두 검색 가능
<프로그램 화면>
<C# 프로그램 소스>
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
string findStr = "검색어"; //찾고자 하는 검색어
string sDirPath = System.IO.Directory.GetCurrentDirectory(); //찾을 파일이 있는 폴더 지정
DirectoryInfo info = new DirectoryInfo(sDirPath);
if (info.Exists)
{
//Current디렉토리에서 찾기
GetFiles(info);
//서브디렉토리까지 확장해서 검색할 경우
GetDirectories(info.GetDirectories());
}
private void GetFiles(DirectoryInfo sDirPath)
{
FileInfo[] MyFilesList = sDirPath.GetFiles();
foreach (FileInfo file in MyFilesList)
{
string filename = file.FullName;
try
{
//Open the presentation
Microsoft.Office.Interop.PowerPoint.Application PowerPoint_App = new Microsoft.Office.Interop.PowerPoint.Application();
Microsoft.Office.Interop.PowerPoint.Presentations multi_presentations = PowerPoint_App.Presentations;
PowerPoint.Presentation pres = multi_presentations.Open(filename, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
//Loop through slides
foreach (PowerPoint.Slide sld in pres.Slides)
{
bool bBreak = false;
//Loop through all shapes in slide
foreach (PowerPoint.Shape shp in sld.Shapes)
{
//Access text in the shape
string str = shp.TextFrame.TextRange.Text;
//Find text to replace
if (str.ToLower().Contains(findStr.ToLower()))
{
//찾았을때 적당한 로직 구현 list에 Add 작업 등
//찾고자하는 문자가 존재하는 Slide가 있으니 다른 슬라이더에서 더 이상 찾지 않고 끝냄.
bBreak = true;
break;
}
}
if (bBreak)
break;
}
pres.Close();
}
catch{ }
}
}
private void GetDirectories(DirectoryInfo[] subDirs)
{
DirectoryInfo[] subSubDirs;
foreach (DirectoryInfo subDir in subDirs)
{
//현재의 디렉토리의 파일에서 찾기
GetFiles(subDir);
// 해당 폴더의 Sub폴더들을 찾아서 재호출
subSubDirs = subDir.GetDirectories();
if (subSubDirs.Length != 0)
{
GetDirectories(subSubDirs);
}
}
}
'개발언어 > C#' 카테고리의 다른 글
[C#]'Microsoft.Office.Interop.Word.ApplicationClass'을(를) 포함할 수 없습니다. (0) | 2022.09.26 |
---|---|
[C#] 폴더 내에 있는 모든 엑셀파일에서 문자열 찾기 (0) | 2022.09.16 |
[C#]C#으로 PDF 파일 안의 텍스트를 추출 (0) | 2022.09.16 |
C# Microsoft.Office.Interop.Word 사용하여 만든 프로그램 배포시 에러 나는 경우 (0) | 2022.09.16 |
[C#] WinForm Word 문서 만들기 #3 (0) | 2022.09.16 |