FileInfo에서 MoveTo로 파일명 변경시 파일 검색이 되질 않습니다

blueyong90의 이미지

win7 64bit visual studio 2012환경에서 작업하고 있습니다.
파일의 FileInfo를 받아와서, MoveTo에 string형 문자열로 이름을 바꾸어주었습니다.
이름 변경까지 문제없어서 잘 사용하고 있었는데, 어느 날 보니 파일 검색이 되질 않는 것을 발견하였습니다.
FileInfo의 MoveTo함수를 사용하여, 파일이름을 바꾸어주었을 때 원래 이런 것인지, 아니면 다른 이유가 있는 것인지 궁금합니다

mirheekl의 이미지


"파일 검색"을 어떤 명령어로 어떻게 하셨는지 알려주셨으면 합니다. 가능하면 문제 재현이 가능한 절차를 쭉 적어주시면 더 좋고요.

아마도 인덱싱과 관련이 있을듯 싶네요.

--

blueyong90의 이미지

파일 검색은 거창하게 어떤 소스코드로 검색한 것이 아니라, 해당 파일이 있는 폴더에서 Ctrl+f 단축키 누르면 나오는 그 곳에서 검색하였습니다. 인덱싱문제가 맞는 것 같긴합니다.. ㅎㅎ 정확한 소스코드는

    ShellClass shell = new ShellClass();
    Folder f;
    FolderItem item;
    FileInfo info;

    private void button1_Click(object sender, EventArgs e)
    {

        string extension;
        string root;
        string fileName;
        string Artist;
        string Title;

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            foreach (string Original_root in openFileDialog1.FileNames)
            {
                try
                {
                    string[] rootTokens = Original_root.Split('\\');
                    root = "";

                    for (int i = 0; i < rootTokens.Length - 1; i++)
                    {
                        root = root + rootTokens[i] + "\\";
                    }
                    string[] exTokens = Original_root.Split('.');

                    extension = exTokens[exTokens.Length - 1];
                    fileName = rootTokens[rootTokens.Length - 1];
                    if (extension == "mp3" || extension == "wma")
                    {
                        extension = '.' + extension;

                        info = new FileInfo(Original_root);

                        f = shell.NameSpace(root);
                        item = f.ParseName(fileName);
                        Artist = f.GetDetailsOf(item, 20);
                        Title = f.GetDetailsOf(item, 21);
                        if(Artist != "" && Title != "")
                          info.MoveTo(root + Artist + " - " + Title + extension);
                        //printLabel();
                    }
                }
                catch(Exception err)
                {
                    MessageBox.Show(err.ToString());
                }
            }
        }
    }

이것인데요. Shell32를 이용하여 음악파일의 정보를 받아서, 해당 파일의 이름을 MoveTo로 변경하는 소스입니다. 인덱싱부분을 망가트렸기에, 검색이 안되었다고 생각할 수는 있는데, 어느부분에서 인덱싱부분이 건드려지는지 잘 모르겠네요.. ㅜㅜ

mirheekl의 이미지


강제로 인덱싱을 다시 하는 기능이 있을텐데요 프로그램 수행 후 재인덱싱을 강제로 한 뒤 시도해보시면 되겠고.. (http://superuser.com/questions/172627/force-windows7-to-reindex-a-folder )

이렇게 해서 동작한다면 파일명 변경 후 재인덱싱을 강제로 시키도록 프로그램을 바꾸면 될듯 합니다. 특정 폴더만 강제로 리인덱싱하는게 가능할지 모르겠네요.

아니면 http://stackoverflow.com/questions/269621/how-to-force-windows-indexing-activity 여기 나온 레지스트리 세팅으로 해결될지도 모르겠네요.

좀더 찾아보니 따로 설정을 안해도 인덱싱이 갱신되는데 그리 오랜 시간이 걸리진 않는다던데 혹시 얼마나 시간이 걸리는지요?

--

blueyong90의 이미지

속도가 그리 빠른것 같진 않아요.. 인덱싱이라는게 라이브러리에 있는 폴더들만 하는건가봐요? 파일이 많아서인지 그리 후딱 되진 않고 차근차근 갯수가 늘어가긴하네요. 처음에는 리인덱싱 했는데 오히려 검색되는게 없어져서 당황했는데, 리인덱싱이 되는 과정이더라구요. 일단 리인덱싱 완료를 기다려보고 다시 검색을 해봐야겠네요.
그리고 두번째 링크꺼는 xp버전용이라 그런지 어떤 것을 말하는건지 잘 모르겠더라구요.. ㅎㅎ;

blueyong90의 이미지

몇몇개는 재인덱싱 되엇지만, 모든 파일들이 모두 재인덱싱 되지 않아, 검색이 되지 않는 건 마찮가지네요.. ㅜ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.