Member 12652631 Ответов: 1

Щелкните и создайте папку и файл


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

Когда пользователь нажимает кнопку сохранить, мое приложение создает каталог на диске C на основе имени/заголовка, введенного пользователем в текстовое поле. Это прекрасно работает.
Моя проблема заключается в том, что я хочу, чтобы приложение также создало файл .txt в этой новой папке с тем же именем, что и эта папка.

Это то, что я использую для создания каталога, когда пользователь добавляет имя и нажимает кнопку Сохранить.
Что мне нужно добавить, чтобы он одновременно создавал текстовый файл?

С уважением

Что я уже пробовал:

Public Class FormEdit
    Private Sub ButtonTitleSave_Click(sender As Object, e As EventArgs) Handles ButtonTitleSave.Click
        Dim path As String = ("C:\SpotLocker\" & TextBoxTitle.Text)
        If Not Directory.Exists(path) Then
            Directory.CreateDirectory(path)
        End If
        PanelTitle.Hide()
        PanelURL.Show()
    End Sub

Richard MacCutchan

Не используйте C: root для создания новых каталогов и файлов. Однако вам просто нужно добавить код, чтобы написать новый текстовый файл. Класс StreamWriter, вероятно, является хорошим выбором.

Member 12652631

Привет Ричард,
Почему бы мне не использовать C: root? Я имею в виду, что это работает до сих пор, есть ли лучший вариант?
Да, я знаю, что мне нужно добавить код для текстового файла, но в этом-то и проблема. Я могу сделать это с помощью новой кнопки, но не знаю, как добавить ее к существующей кнопке, чтобы она знала, что файлу нужно дать то же имя, что и папке.
Я пойду и поиграю с ним еще немного :D

Richard Deeming

Две очевидные причины избегать корня C: - разрешения и беспорядок.

Начиная с Windows Vista, обычные пользователи не имеют разрешения на создание файлов или папок в корневом каталоге Windows Vista. C:, поэтому они не смогут установить или использовать ваше приложение без разрешения администратора.

А помещая свои файлы в корневой каталог, вы загромождаете файловую систему пользователей файлами, которые имеют смысл только для вашего приложения.

Если только у вас нет действительно веская причина не делать этого-вы должны хранить файлы вашего приложения в папке, относящейся к конкретному приложению. AppData путь.

Где я должен хранить свои данные?[^]

Member 12652631

Спасибо за предупреждение, я думаю, что идти за AppData-это не так уж плохо. Что касается разрешений и vista, и я приношу извинения всем пользователям vista, которые попались на покупку (я это сделал) или все еще используют ее, но я нацелен только на пользователей windows 10. Это не реальный выбор, так как мое приложение должно работать вместе с чьим-то другим приложением, которое работает только на машинах win10.
Спасибо снова

Richard Deeming

Когда я сказал "Начиная с Vista", я имел в виду любую версию начиная с Vista. Так что это включает в себя Windows 10. :)

1 Ответов

Рейтинг:
10

Afzaal Ahmad Zeeshan

Хорошо, как только вы это сделаете, вы можете просто добавить новый файл и записать его с тем же именем.

If Not Directory.Exists(path) Then
   Directory.CreateDirectory(path)
   ' create file here; e.g. "C:\directory\name\name.txt"
   File.Create(path + "\\" + TextBoxTitle.Text + ".txt")
Это создаст файл и откроет поток к этому файлу — чтобы закрыть его, сделайте .Close() на Create() функция. Обратите внимание, что я создал файл внутри блока If, чтобы создать файл только тогда, когда каталог не существует — если ваш каталог существует из-за неисправного кода, удалите каталог и запустите код снова.

Как создать файл в Visual Basic | Microsoft Docs[^]


Member 12652631

Afzaal Зишан Ахмед

Большое вам спасибо, что сделали свое дело.

С уважением