2017-07-06 16 views
0

Webサイトのページとは異なるサーバーにあるファイルの最終更新日を取得しようとしています。問題は、そのファイルへのパスが\\ something.com \ foldername \ file.xlsxに似ていることです。私は、Server.MapPathを二重スラッシュまたはバックスラッシュを含むパスで使用することはできないと読んでいます。ダブルバックスラッシュを1つ、3つまたは4つのバックスラッシュに置き換えようとしましたが、動作しません。これは今まで私のコードです:FolderExistsが間違った値を返す

<% 
dim fs, f 
set fs=Server.CreateObject("Scripting.FileSystemObject") 
set f=fs.GetFile(Server.MapPath("\\something.com\foldername\file.xlsx")) 
Response.Write("The file was last modified on: <h1 id='dateTime'>") 
Response.Write(f.DateLastModified) 
Response.Write("</h1>") 
set f=nothing 
set fs=nothing 
%> 

私はコードが含まれており、作品..it ..

set f=fs.GetFile(Server.MapPath("file.xlsx")) 

とその行を置き換えるディレクトリにファイルをコピーしますが、私がいない場合元のファイルでどのように動作させることができますか?

プログラムが動作するように二重バックスラッシュを置き換えるために何ができるか知っていますか?投稿したコードを使用しようとすると空白のページが表示されます。

答えて

0

私はあなたが相対パスと絶対パスの違いを知らないと思います。

xlsxをダウンロードするためにサイトにリンクを作成したいとします。このようなリンクを作成します。

<a href="/foldername/file.xlsx">file.xlsx</a> 

サーバー上の絶対パスが何Server.MapPath

C:\inetpub\wwwroot\something.com\foldername\file.xlsx 

のようなものであるが、ファイルが通常のファイルシステムに配置することができるようにabsouleパスへの相対パスを翻訳です。通常のhtmlリンクのように使います。あなたは今、この操作を行う最終更新日時を知りたい場合は

Server.MapPath("/foldername/file.xlsx") 

だから:

FileInfo file = new FileInfo(Server.MapPath("/foldername/file.xlsx")); 
Label1.Text = file.LastWriteTime.ToString(); 
+0

は、そのファイルがすでにsomething.comに位置していることを意味しませんか?そうではありません。基本的に私のサイトはsomethingelse.comにあるので、Server.MapPath( "/ foldername/file.xlsx")はsomething.comのファイルを探しているので動作しません。 – couchPotato

+0

'something.com'は実際のウェブサイトであり、サーバー上のフォルダ名ではありません。あなたがファイルシステムにアクセスできないので、これはうまくいきません。唯一の方法は、そのファイルをダウンロードし、それを自分のサーバーに保管し、そこのプロパティーをチェックすることです。 – VDWWD

関連する問題