2016-07-16 11 views
0

の基準に基づいて、ファイルやフォルダを削除します。すべてのフォルダとファイルをWindowsサーバーに保存し、フォルダとファイル情報をSQLデータベースに保存します。毎回サーバー上にフォルダやファイルを作成し、データベースから一意のIDを付けて名前を付けます。例:contact〜432cace7-a39c-4db5-a38f-9efe5d289bbf.pdfダウンロードして、私はC#を使用してASP.NETで文書管理システムに取り組んでいます

ここでは、同じフォルダにアクセスし、アクセスに基づいて削除およびダウンロードする方法が必要な異なるユーザーがいます。

例:私は2人のユーザ、ユーザ1及びユーザ2を有しています。私は2つのファイルを含むフォルダ-1を持っています。 file-1はuser-1とfile-2によってuser-2によってアップロードされます。ユーザー-1がブラウザのページでファイルを表示すると、database-queryに基づいて、folder-1とそのファイル-1が表示されます。しかし、ユーザ1がダウンロードのためにフォルダ1を選択すると、Windowsサーバに行き、物理的にサーバ1上の同じフォルダ内にあるので、ファイル1とファイル2の両方をダウンロードする。同じことが削除の場合もあります。

は、どのように私は、このシナリオを扱うことができますか?

基本的には、SQLでの取り扱いは、リレーショナルデータベースと非常に簡単ですが、私はこれが効率的にWindowsサーバ上で行うことができる方法を考えていますか?

私の考え:IDのリストを返し、それに基づいてダウンロードジップまたは削除を生成するDBストアドプロシージャを呼び出します。しかし、フォルダとファイルのネストが可能なので、パフォーマンスはどれくらい効率的になりますか? JSファイルで

+0

ユーザーは、ブラウザのURLを使用して、ファイルやフォルダに直接移動することはできますか?自分のファイルをダウンロードするために使用されたURLフォーマットに基づいてファイル名を推測するだけで、誰かがelsesファイルをダウンロードできますか? – PhillipH

+0

ユーザーはファイル名を推測できますが、その名前に関連付けられたファイルの一意のGUIDを推測することはできません。 uは上記の私の例に気付いた場合と同様に、ファイル名やフォルダ名は形式になります。名前は〜のGUID – user2272865

答えて

-1

は以下のコードとプロセスに従ってください

var file_name = response.value[0]["name"]; 
var downloadurl = response.value[0]"@microsoft.graph.downloadUrl"]; 

// --------------------- --------------------------------------------------私たちの背後にあるコードで//

function HandleIT(downloadurl,file_name) { 
    PageMethods.ProcessIT(downloadurl,file_name, onSucess, onError); 
    function onSucess(result) { 
     alert(result);  
    } 
    function onError(result) { 
     alert('Something wrong.'); 
    } 
} 

WebMethod属性:

[WebMethod] 
     public static string ProcessIT(string downloadURL, string file_name) 
     {    
      // Create a new WebClient instance. 
      WebClient myWebClient = new WebClient(); 
      string path = @"c:\"; 
      string path_n_name = path + file_name; 
      // Download the Web resource and save it into the current filesystem folder. 
      myWebClient.DownloadFile(downloadURL, path_n_name); 
      return "SUCCESS"; 
     } 

これは私が

if(fileName != null || fileName != string.empty) 
    { 
     if((System.IO.File.Exists(fileName)) 
      System.IO.File.Delete(fileName); 

    } 

が、それはあなたのために働くホープファイルを削除する方法です...!

+0

は含めることを忘れないでください: - System.Netを使用しました。 –

関連する問題