C # Win Form - позволяет сохранять файл только на локальном ПК - PullRequest
0 голосов
/ 04 июля 2018

Brief

Я пытаюсь сделать резервную копию базы данных SQL с помощью моего программного обеспечения. Во время выполнения программа спрашивает пользователя, где он хочет сохранить резервную копию.

Требование

Теперь мое требование заключается в том, чтобы пользователь мог создавать резервные копии только на самом ПК или на любом подключенном к нему Pendrive, но не на сетевом ПК.

Решение, которое я придумал

Вот код, который я использую: -

SaveFileDialog obj = new SaveFileDialog();
obj.DefaultExt = ".bak";
obj.FileName = FileName;
obj.ShowDialog();
if (obj.FileName != null && obj.FileName != "" && obj.FileName.StartsWith("\\\\") == false)
{
     //Save File Work
}

Вопрос

Теперь я хочу спросить вас, ребята, будет ли этого кода obj.FileName.StartsWith("\\\\") == false достаточным, чтобы запретить пользователю экономить на сетевых дисках, или есть какой-то другой способ, который я должен использовать, чтобы этого не произошло?

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете проверить, является ли путь сетевым или нет, используя new Uri(mypath).IsUnc, а затем заблокировать пользователя на основе этого

поэтому код будет похож на

if (new Uri(path).IsUnc || IsNetworkPath(path))
{
  //show message not allowed
  return;
}

//for checking path is network or not 
private bool IsNetworkPath(path) 
{
    FileInfo file = new FileInfo(path);
    DriveInfo drive = new DriveInfo(file.Directory.Root.FullName);
    return dive.DrivType == DrivType .Network;    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...