#c# #unity3d #txt
Вопрос:
Итак, поскольку код работает нормально, однако он создает только один файл txt, я бы хотел, чтобы он создавал новый файл каждый раз при запуске и в идеале создавал папку в Unity для хранения всего этого, а не только в папке «Ресурсы».
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using Unity.UI;
public class Hippocampus : MonoBehaviour
{
QuoteText qT;
void OnEnable ()
{
qT = FindObjectOfType<QuoteText>();
}
public void CreateText()
{
string path = Application.dataPath "/Job" 01 ".txt"; // file path and name of the file TODO: growing list, also create a new folder or directory like: @"E:ProjectC_SharpTutorialConsole_AppFileSystemOutput"; for example
if (!File.Exists(path))
{
File.WriteAllText(path, qT.area "m² nn");
}
string content = "$" qT.sqreMeterRate * qT.area "n"
qT.tileMod "n"
qT.ironMod "n"
qT.roofFall "n"
qT.snowMod "n"
qT.skyLightMod "n"
qT.hotWaterMod "n"
qT.boxGutterMod "n"
qT.ceilingMod "n"
qT.overSizedMod "n"
qT.floorLevel "n"
qT.rakingMod "n"
qT.solidRaftersMod "n"
qT.aCMod "n"
qT.ductingMod "n"
qT.commercialMod "n";
File.AppendAllText(path, content);
}
}
Спасибо за помощь
Комментарии:
1. Просто переименуйте файл. Сделайте что-нибудь вроде этого: путь к строке = Application.dataPath «/Задание» DateTime.Now.toString(«yyyyMMdd») «.txt»;
2. …вот. Исправил это.
3. Рассмотрите возможность использования
StringBuilder
вместо пары десятков конкатенаций строк4. Спасибо за вашу помощь и советы, переименование файла оказалось приятным.
Ответ №1:
Один из способов сделать это-увеличивать индекс на 1 каждый раз, когда вы запускаете метод. Что-то вроде этого сработало бы:
const int NUM_DIGITS = 2
string dirPath = Application.dataPath;
var files = Directory.GetFiles(dirPath, "Job*");
int nextFileNo = (int)(files.Length == 0 ? 0 :
files.Max(x => decimal
.Parse(Path.GetFileName(x)
.Substring(3, NUM_DIGITS)))) 1;
string path = $"{dirPath}\Job{nextFileNo.ToString($"D{NUM_DIGITS}"}.txt";
Если вы планируете иметь более 99 файлов, измените NUM_DIGITS
их на большее число.
Комментарии:
1. Привет, Реализовал этот код с помощью системы. Linq и я получаем следующую ошибку: Исключение InvalidOperationException: Последовательность не содержит элементов. Спасибо, что уделили мне время
2. @Бен — Вы используете более старую версию. Текущая версия исправляет это.
3. О, потрясающе, большое тебе спасибо