파일 이름 목록을 서버에서 가져 와서 저장하는 코드를 만들었습니다. 컴퓨터의 디렉토리에서 폴더 이름을 얻었으므로 둘 다 비교해야합니다. 서버가 아닌 로컬 시스템에있는 이름이 있는지 알아보십시오.파일 이름 변수를 파일 경로 변수와 비교하십시오.
serverlistarray에는 서버의 폴더 목록 (항목 당 1 개의 폴더)이 포함되어 있으며 로컬 listarray에는 로컬 컴퓨터의 디렉토리 목록이 포함되어 있으며 항목 당 1 개의 폴더가 있습니다.
String[] localfilelistarray = System.IO.Directory.GetDirectories(/*file location*/);
내 문제는 get 디렉토리에 있으며 필자는 비교할 수없는 파일의 전체 경로를 포함합니다. 아래 코드는 내가 시도한 것이며 locallistarray의 파일에 대한 serverlistarray를 확인하고 일치하면 목록에 넣습니다.
for (int b = 0; b < localfilelistarray.Length; b++)
{
//problem with the compare
if (!serverlistarray.Contains(localfilelistarray[b].Replace(/*file path before filename*/, "")))
{
//add to list variable
}
}
그때 (파일 이름을 보여 지금은 메시지 상자) 목록에서 모든 것을 내가하고 싶은 일을하기 위해이 코드를 사용합니다.
for (int f = 0; f < delete.Count(); f++)
{
MessageBox.Show(/*list variable*/);
}
그러나 서버 목록 배열에 있어도 모든 파일을 가져오고 잘못된 점을 해결할 수 있습니다. 그 두 배열의 비교로 할 수 있다고 생각하지만 루프에 메시지 상자를 넣을 때 예상대로 나오지 만 비교가되지 않는 것 같습니다.
누구나 무슨 일이 잘못되었는지 볼 수 있습니까?
ive는 대체 및 직접 비교를 사용하여 사용하지 못했습니다. 비록 serverillarray에 파일 경로를 추가하지만 서버 작업과이 코드의 다른 부분에 원시 파일 이름이 필요하므로이 작업을 수행 할 수 없습니다.
EDIT :
serverlistarray 예 :
[0]folder1
[1]folder2
[2]folder3
localfilearray 예 :
[0]c:\\users\Noliver\folder1
[1]c:\\users\Noliver\folder2
[2]c:\\users\Noliver\folder3
[3]c:\\users\Noliver\folder4
[4]c:\\users\Noliver\folder5
기대 출력 (루프에서 메시지 박스)
c:\\users\Noliver\folder4
&
c:\\users\Noliver\folder5
EDIT 2 :
필자 파일 경로 사용없이 소량이 코드 노력이 발 출력 (연장은 박리와 파일 이름)를 serverlistarray이 온도 [0]으로부터 파일 이름을 함유하는 것으로 나타났다
for (int b = 0; b < localfilelistarray.Length; b++)
{
String[] temp = System.IO.Path.GetFileName(localfilelistarray[b]).Split('.');
MessageBox.Show(localfilelistarray[b] + " - " + temp[0]);
for (int t = 0; t < serverlistarray.Length;t++)
{
MessageBox.Show("server " + serverlistarray[t] + " - " + localfilelistarray[b] + " - " + temp[0]);
}
if (!update.Contains(temp[0]))
{
delete.Add(localfilelistarray[b]);
}
}
을 그러나 모든 파일은 목록 변수에있었습니다. 이것은 새로운 줄이나 줄의 끝에있는 공간으로 내려갈 수 있습니까? 어떤 이유로 배열이 값을 포함하고 있는지 검사하는 if 문은 작동하지 않습니다.
localfilelistarray 및 serverlistarray의 내용에 대한 예뿐만 아니라 결과로 기대되는 것을 제공 할 수 있습니까? – Patrick
@ 패트릭이 형식과 예상 출력으로 코드를 업데이트했습니다. – NoLiver92
Path.GetFileName을 사용하여 디렉토리를 제거 할 수 있습니다 (폴더와 파일에서 작동). 또한 몇 가지 임시 변수를 소개하여 비교 대상을 볼 수 있습니다. –