2011-07-28 3 views
2

나는 타임 스탬프보다 최신 인 경우에만 PDF 파일을 다운로드하고 대체 할 응용 프로그램을 쓰고 있어요 이미 하나 ... C#을 사용하여 온라인 pdf 파일의 타임 스탬프를 찾는 방법은 무엇입니까?

내가 로컬에있는 파일의 타임 스탬프를 읽을의 수를 알고있는 기존의 아래의 코드 라인을 통해 컴퓨터

MessageBox.Show(File.GetCreationTime("C:\\test.pdf").ToString()); 

다운로드하지 않고 온라인 파일의 타임 스탬프를 읽을 수 있습니까?

답변

2

사이트의 파일을 포함하는 디렉토리가 원시 파일 목록을 표시하도록 구성되어 있지 않으면 HTTP를 통해 파일에 대한 타임 스탬프를 얻을 수있는 방법이 없습니다. 원시 목록을 사용하더라도 타임 스탬프를 얻기 위해 HTML을 직접 파싱해야합니다.

파일에 대한 FTP 액세스 권한이있는 경우이 작업을 수행 할 수 있습니다. .NET Framework에 기본 제공되는 FTP 기능을 사용하는 경우 디렉토리 목록을 구문 분석해야만 날짜를 알 수 있습니다. 그러나 editFTPnet과 같은 공백을 채우는 타사 FTP 라이브러리가 있는데 여기에서 FTPFile class을 얻을 수 있습니다.

업데이트 : 나는 수동으로 작성 날짜와 파일 이름과 간단한 HTML 파일을 설정한다면, 단순히 어떤 파일을 찾을 것을 읽을 수

: 코멘트 당

실제로 업데이트되어 필요한 파일 만 다운로드합니다. 입니다 하나 개의 방법이 될 것입니다, 또는 사용 가능한 스크립트가있는 경우 (ASP.NET은 ASP는 등 PHP, 펄,) 당신이를 자동화하고 스크립트를 얻을 수있을 수있는 실현 가능한 솔루션 ..

파일의 타임 스탬프를 가져 와서 렌더링합니다. 또는 JSON 또는 XML blob을 반환하는 매우 간단한 웹 서비스를 작성하여 일부 HTML보다 구문 분석이 덜 복잡한 파일의 타임 스탬프를 포함 할 수 있습니다.

+1

+1 할 수 없다는 말은 아니지만 문제에 대한 좋은 대안을 제시하기 위해 +1 –

+0

@ kev : 나는 수동으로 작성된 날짜와 파일 이름을 가진 간단한 html 파일을 설정한다면, 그 파일을 읽어 실제로 파일이 업데이트되었는지 확인하고 필요한 파일 만 다운로드 할 수 있습니다. 가능한 해결책입니다 .. 제발 .. –

+0

@helloWorld_ 항상 - 내 대답을 업데이 트하십시오. – Kev

1

웹 서버가 명시 적으로 해당 데이터를 제공하는 경우에만 가능합니다. 파일의 작성 날짜는 파일 시스템의 일부입니다. 그러나 HTTP를 통해 무언가를 다운로드 할 때는 해당 시점에 파일 시스템의 일부가 아닙니다.

HTTP에는 사람들이 일반적으로 생각하는 방식으로 "파일"이라는 개념이 없습니다. 대신에 "파일"이 될 데이터가 데이터에 대한 정보를 제공하는 응답 헤더와 함께 응답 데이터로 전송됩니다. 헤더는 데이터 형식 (예 : PDF "파일")을 지정할 수 있으며 클라이언트가 클라이언트의 로컬 파일 시스템에 파일로 데이터를 저장하기로 결정한 경우 사용할 기본 이름을 지정할 수도 있습니다.

그러나 저장하더라도 클라이언트의 로컬 파일 시스템에있는 새 파일입니다. 웹 서버에서 제공 한 데이터를 생성 한 원본 파일에 대해 알지 못합니다.

관련 문제