アプリケーションフォルダーから同じサーバー上の他のフォルダーにファイルをコピーするWebサイトで作業しています(ただし、このフォルダーはアプリケーションフォルダーの外にあります。つまり、Cドライバー上のアプリケーションで、宛先フォルダーはDドライブにあります)。これは、Asp.Net の機能を使用して可能ですか?
前もって感謝します。
アプリケーションフォルダーから同じサーバー上の他のフォルダーにファイルをコピーするWebサイトで作業しています(ただし、このフォルダーはアプリケーションフォルダーの外にあります。つまり、Cドライバー上のアプリケーションで、宛先フォルダーはDドライブにあります)。これは、Asp.Net の機能を使用して可能ですか?
前もって感謝します。
はい、可能です。注意が必要な唯一の懸念は、CopyTo パスが相対パスではなく完全パスであることです (例: c:\websites\myOtherFolder )。
このようにして、ASP.NET コードからファイルを正常にコピー/移動できます。
以下は、それを実行する方法を示す疑似コードです (ファイルが ASP.NET アプリケーションのルート フォルダーに配置されていると仮定します)。
using System.IO;
..
..
..
// Get the current app path:
var currentApplicationPath = HttpContext.Current.Request.PhysicalApplicationPath;
//Get the full path of the file
var fullFilePath = currentApplicationPath + fileNameWithExtension;
// Get the destination path
var copyToPath = "This has to be the full path to your destination directory.
Example d:\myfolder";
// Copy the file
File.Copy(fullFilePath , copyToPath );
この関数を使用します。
System.IO.File.Copy(FileToCopy, NewCopy)
あるフォルダから別のフォルダにファイルを移動するのは非常に簡単です。移動中にファイル名を変更できます...
string Tranfiles, ProcessedFiles;
//Tranfiles = Server.MapPath(@"~\godurian\sth100\transfiles\" + Filename);
Tranfiles = Server.MapPath(@"~\transfiles\" + Filename);
if (File.Exists(Server.MapPath(@"~\transfiles\" + Filename)))
{
File.Delete(Server.MapPath(@"~\transfiles\" + Filename));
}
//ProcessedFiles = Server.MapPath(@"~\godurian\sth100\ProcessedFiles");
ProcessedFiles = Server.MapPath(@"~\ProcessedFiles");
File.Move(Tranfiles, ProcessedFiles);
これで、アプリケーション フォルダーをチェックして、移動プロセスのステータスを確認できます。