2008-10-23 9 views
2

원격 컴퓨터에서 XML 파일이 들어있는 디렉터리를 삭제하려고합니다. 내 코드가 제대로 컴파일되고 실행되지만 지정한 경로에서 XML 파일 목록을 가져 오면 아무 것도 반환하지 않습니다. 나는 현명한 무언가를 놓치고 있습니까?원격 컴퓨터에서 파일 삭제

나는 나 자신과 다른 컴퓨터로 로그온 한 다른 컴퓨터에서 로그온 한 컴퓨터에서 실행했습니다. 두 계정 모두 XML 파일이 들어있는 디렉토리를 완전히 제어 할 수 있습니다.

.NET 2.0을 사용하고 있습니다.

static void Main(string[] args) { 
     string directory, ext = ".xml"; // have tried xml and .xml 

     if (args.Length != 1) { 
      // do absolutely nothing if we do not exactly 1 argument 
     } else { 
      Console.WriteLine("Argument accepted."); 
      directory = args[0]; 

      // make sure the directory passed is valid 
      if (ValidateDirectory(directory)) { 
       Console.WriteLine("Directory is valid."); 
       DeleteFiles(directory, ext); 
      } 
     } 
     Console.WriteLine("Done."); 
    } 

    static bool ValidateDirectory(string d) { 
     return Regex.IsMatch(d, @""); // I removed my regex - it validates properly 
    } 

    static void DeleteFiles(string d, string ext) { 
     DirectoryInfo di; 
     FileInfo[] fi; 

     di = new DirectoryInfo(d); 
     fi = di.GetFiles(ext); 

     Console.WriteLine("Number of files = " + fi.Length + "."); 
     foreach (FileInfo f in fi) { 
      try { 
       Console.WriteLine(f.FullName); 
       f.Delete(); 
      } catch (Exception ex) { 
       // do nothing when there is an exception 
       // just do not want it to quit 
       Console.WriteLine(ex.ToString()); 
      } 
     } 
    } 

답변

4

간단히 말해 .xml 대신 * .xml을 사용해야한다고 생각합니다. 그러나 Kyralessa와 동의하고 로컬 컴퓨터에서 먼저 테스트 한 다음 네트워크를 통과하는 복잡성을 추가합니다. 의 : Deletefiles에서

0

당신은 네트워크 경로를 통과한다고 가정합니까? 로컬 경로에서 프로그램을 실행할 때 실패합니까? 이 줄 수 : fi = di.GetFiles (ext); 모든 fileInfo 객체를 반환합니까?

아마도 약간의 디버깅으로 해결할 수있는 작은 문제가있을 것입니다.

2

, 다음 줄이 :

Fi를 = di.GetFiles (내선);

여기서 ext는 전달한 확장자이며 '.xml'이라고 생각합니다. Get 파일은 '.xml'이라는 파일을 찾고 있습니다. GetFiles는 와일드 카드를 사용합니다. 나는 당신이하려는 것을 믿습니다. 별표 (*)를 앞에 붙여 놓으십시오.

- 브렛

0

당신은 무엇을 인수로 전달합니까? 매핑 된 드라이브 또는 직접 참조 (예 : // 서버/폴더)를 사용하고 있습니까?

ValidateDirectory 대신 디렉토리를 볼 수 있는지 확인하기 위해 Directory.Exists (디렉토리)를 사용해야합니다.

+0

원격 경로 (\\ server \ folderx \ foldery)를 사용하고 있습니다. 이 파일들은 Google 서버 중 하나에 저장되어 있으며 프로그램은 매우 구체적입니다. 난 단지 특정 디렉토리에서 작동하도록하고 모든 디렉토리는 같은 형식을 가지고 있습니다. –

1

후속 :

나는 (! 그것을 알았어 야) * .XML를 사용하는 데 필요한 그리고 지금은 작동합니다.

이 사이트는 좋습니다!

관련 문제