我正在使用C#的Windows桌面應用程序中工作。其中我想實現某種功能,以便用戶只能在根文件夾中的文件夾內創建文件。以編程方式在特定文件夾中創建文件
假設如果我的根文件夾是A並且裏面有A1,A2,A3文件夾,用戶可以在文件夾A1,A2,A3中的任意文件夾中創建一個文件。但他不應該被允許直接創建一個文件A.
所以簡而言之,我想只在一個特定的文件夾中創建文件。有什麼辦法可以實現這個嗎?是否有可能使用shell腳本?
在此先感謝!
我正在使用C#的Windows桌面應用程序中工作。其中我想實現某種功能,以便用戶只能在根文件夾中的文件夾內創建文件。以編程方式在特定文件夾中創建文件
假設如果我的根文件夾是A並且裏面有A1,A2,A3文件夾,用戶可以在文件夾A1,A2,A3中的任意文件夾中創建一個文件。但他不應該被允許直接創建一個文件A.
所以簡而言之,我想只在一個特定的文件夾中創建文件。有什麼辦法可以實現這個嗎?是否有可能使用shell腳本?
在此先感謝!
創建一個用於創建文件的.net方法的包裝。然後實現一個黑名單(或白名單),您可以使用它來指定要阻止的文件夾(或在允許while-list的情況下)。
在啓動時,列表加載到List<string>
,並用它包裝內,以確定是否要執行該操作
例如,如果您使用File.Create
創建的文件;您的包裝可以像下面現在
public void CreateFile(string folderName, string fileName, IList<string> whiteList)
{
// can I create the file in this folder ????
if (!whiteList.Any(f => f.Equals(folderName, StringComparison.InvariantCultureIgnoreCase)))
{
// No apparently not... I should now throw an exception
}
// create the file
File.Create(string.Format("{0}/{1}", folderName, fileName)).Dispose();
}
當過您要創建的應用程序中的文件,使用CreateFile
代替File.Create
嗨..感謝您的代碼。但顯然這不是我所期待的。我在這裏沒有使用file.Create方法。用戶不應在Windows中創建文件。在Windows中,我們可以通過右擊並單擊新建來創建一個文件夾。我應該阻止以這種方式在根文件夾中創建文件! – user3222297
嗨,根據以前的評論,我以爲你想控制應用程序內的行動。所以,如果你想限制用戶在父文件中創建文件,爲什麼不使用標準的Windows許可? - 乾杯 –
通過使用標準的Windows權限,我們可以限制用戶只在特定的文件夾中創建文件嗎?對不起,但我不知道如何指定Windows權限。 – user3222297
在創建文件夾的時間,
您可以檢查父文件夾名稱...
例如:Directory.GetParent(「A \ A1」); 這會給你文件夾名稱A作爲DirectoryInfo名稱。
您可以將您的RootFolderName與GetParent Name進行比較,並限制從應用程序創建。
謝謝
正如我所說的那樣,文件創建不是以編程方式完成的。用戶可以右鍵單擊並單擊new,並在本地創建一個文件。 – user3222297
再次,我需要防止文件創建而不是文件夾創建。我需要確保文件不在根文件夾內創建,同時用戶必須能夠在根文件夾內創建文件夾。 – user3222297
是否要禁止在應用程序內部的此特定文件夾中創建文件?或者在系統範圍內阻止它?你還有什麼嘗試過? – mnme
你試過利用'FileSystemWatcher'嗎? – Yahya
@mnme:從應用程序內部.Bcoz文件夾A即根文件夾是以編程方式從應用程序創建的。 – user3222297